#python #python-3.x #python-requests
#python #python-3.x #python-запросы
Вопрос:
Я настраиваю небольшую службу Python для работы в качестве обратного прокси-сервера REST API, но надеюсь, что есть некоторые доступные библиотеки, которые помогут ускорить этот процесс.
Необходимо иметь возможность запускать функцию для вычисления переменной для ввода в качестве заголовка запроса, когда запрос передается через серверную часть.
В нынешнем виде у меня есть более простой скрипт для выполнения функции получения переменной и ввода ее в конфигурационный файл Nginx, а затем принудительной перезагрузки Nginx с помощью сигналов, но попытка удалить эту зависимость для того, что должно быть довольно простой задачей.
Было бы хорошим подходом использовать falcon в качестве слушателя и объединить его с другим подходом для ввода и пересылки запросов?
Спасибо за чтение.
Редактировать: читал https://aiohttp.readthedocs.io/en/stable / поскольку это кажется правильным направлением.
Ответ №1:
Благодаря кому-то из falcon, теперь это принятый ответ!
import io
import falcon
import requests
class Proxy(object):
UPSTREAM = 'https://httpbin.org'
def __init__(self):
self.session = requests.Session()
def handle(self, req, resp):
headers = dict(req.headers, Via='Falcon')
for name in ('HOST', 'CONNECTION', 'REFERER'):
headers.pop(name, None)
request = requests.Request(req.method, self.UPSTREAM req.path,
data=req.bounded_stream.read(),
headers=headers)
prepared = request.prepare()
from_upstream = self.session.send(prepared, stream=True)
resp.content_type = from_upstream.headers.get('Content-Type',
falcon.MEDIA_HTML)
resp.status = falcon.get_http_status(from_upstream.status_code)
resp.stream = from_upstream.iter_content(io.DEFAULT_BUFFER_SIZE)
api = falcon.API()
api.add_sink(Proxy().handle)