Flask Приложение: API возвращает один и тот же ответ для разных запросов - PullRequest
0 голосов
/ 20 января 2020

У меня есть приложение Flask, которое имеет несколько API, один из API, к которым у меня есть доступ с помощью запроса POST, и получает данные в теле вместе с некоторыми заголовками, например, student_id . Этот API возвращает результаты ученика на основе переданного student_id в заголовках.

Я запустил его в Pycharm IDE (локально), и он работает на 100%, в котором для каждого отдельного student_id возвращается другой результат. в противном случае (student_id не передан) возвращается неверный запрос.

, но когда он развернут в AWS (стебель эластичного боба), результат будет одинаковым для любого student_id, даже если в заголовках нету student_id по-прежнему возвращает результат (тот же результат для первого запроса к этому API).

По моему мнению, это проблема с кэшированием, поэтому я попытался добавить decorator @ app.after_request, но это не так не работает

@application.after_request
def after_request(response):
    response.headers['Last-Modified'] = str(http_date(datetime.now() - timedelta(days=1)))
    response.headers["Cache-Control"] = "'no-store, no-cache, must-revalidate, post-check=0, 
    pre-check=0, max-age=0'"
    response.headers["Expires"] = '-1'
    response.headers["Pragma"] = "no-cache"
    return response

1 Ответ

0 голосов
/ 21 января 2020

Я решил проблему, приведенный выше код в моем вопросе хорошо работает, в котором он отключает кэширование, но убедитесь, что вы используете правильный формат даты для HTTP (я изменил код, чтобы он работал на 100%).

Проблема не была связана с кэшированием, это была проблема, при которой кто-то из заголовков не был передан на серверы , это из-за того, что AWS серверы работают на Nginx и Apache и

недопустимы подчеркивания в заголовках

Для получения полной информации обратитесь к этому вопросу подчеркивания недопустимы в заголовках

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...