Вчера вечером мне пришлось обновить код приложения, чтобы переключиться с синхронного http-вызова на асинхронный. Это не особенно сложная задача, но решить ее может быть непросто.
Поэтому мне нужен был способ протестировать эти http-вызовы, а на машине, которую я использовал, еще не было запущенных http-серверов, которые можно было бы использовать в качестве цели.
Нет проблем: есть Python — и это все, что вам нужно.
Этот шаблон сформировался для меня. Для простых задач часто проще написать небольшой служебный скрипт вместо установки полноценного программного обеспечения для выполнения работы.
Если вам нужен настоящий сервер, обязательно используйте его (но даже в этом случае я бы предложил Docker, если это возможно). Но если вам просто нужна быстрая конечная точка для тестирования или решения одного варианта использования, то Python, вероятно, станет вашим другом.
Я говорю о Python именно потому, что он довольно распространен и имеет богатую стандартную библиотеку и экосистему.
Идея этого простого сервера заключалась в том, чтобы помочь мне протестировать асинхронные вызовы клиента, поэтому я хотел, чтобы он подождал 5 секунд, а затем ответил. Я просто хотел, чтобы он отвечал на любой стандартный вызов цифрой 200 через 5 секунд.
from flask import Flask, request import time app = Flask(__name__) @app.route('/', defaults={'path': ''}, methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH']) @app.route('/', methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH']) def catch_all(path): print(f"Path: {path}") print(f"Headers: {dict(request.headers)}") print(f"Params: {request.args}") print(f"Data: {request.data}") # Wait for 5 seconds time.sleep(5) return "yessir" if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3