Как отклонить запрос http (сгенерировать ошибку кода) - PullRequest
0 голосов
/ 29 января 2020

Вот мой код, мне нужно изменить возврат "BLOCKED" на запрос le git отклонить, как я могу это сделать?

@app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT'])
def add():

    data = request.get_json()
    dt_string = datetime.now()
    objeto = Requisicao(data,dt_string)

    if len(lista)<2:
        lista.append(objeto.id)
        lista.append(objeto.hora)
        return 'PASS'

    for i in range(0,len(lista),2):
        if lista[i] == objeto.id and objeto.hora < lista[i+1] + timedelta(seconds=10):
            return 'BLOCKED'

    else:
        lista.append(objeto.id)
        lista.append(objeto.hora)
        return 'PASS'

Ответы [ 3 ]

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

Вы можете просто вернуть кортеж, где первый элемент - это сообщение, а второй - код ошибки HTTP.

Из вашего кода я не уверен, какой ответ вы хотите вернуть, но 400 (Bad Request) может подойти для API. Вот полный список: https://www.wikiwand.com/en/List_of_HTTP_status_codes

@app.route('/bad_request'):
    return jsonify({}), 400
0 голосов
/ 29 января 2020

Возможно, вы хотите вернуть ошибку HTTP, например 400. Смотрите другой ответ для ссылки на коды ошибок HTTP. Вариант этого ответа ближе к вашему коду:

@app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT'])
def add():
    ...
    if ...:
        ...
        return 'PASS'

    for ...:
        if ...:
            return 'BLOCKED', 403

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

Вы хотите вернуть ошибку в отличие от обычно успешного? что-то вроде этого может работать:

return jsonify(success=False, errors=errors), 500

Или вы можете вызвать ошибку в Python? Я бы посмотрел здесь

https://docs.python.org/3/tutorial/errors.html

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