codice di stato restituito HTTP 201 nel pallone
-
27-10-2019 - |
Domanda
Stiamo usando Flask per uno dei nostri API e mi stavo chiedendo se qualcuno sapeva come restituire una risposta HTTP 201?
Per gli errori come la 404 che possiamo chiamare:
from flask import abort
abort(404)
Ma per 201 ottengo
LookupError: non fa eccezione per 201
Devo creare il mio eccezione come questo nella documentazione ?
Soluzione
Si può leggere su di esso qui.
return render_template('page.html'), 201
Altri suggerimenti
È possibile utilizzare Risposta per restituire qualsiasi codice di stato HTTP.
> from flask import Response
> return Response("{'a':'b'}", status=201, mimetype='application/json')
Per quanto manca suggerito codice di stato di invio in istruzione return e se si archiviano in una variabile come
notfound = 404
invalid = 403
ok = 200
e utilizzando
return xyz, notfound
di tempo assicurarsi che il suo tipo è int non str. come ho affrontato questo piccolo problema anche qui è elenco di codice di stato seguito globalmente http://www.w3.org/Protocols/HTTP/HTRESP.html
La speranza aiuta.
Si può fare
result = {'a': 'b'}
return jsonify(result), 201
se si vuole restituire un dati JSON nella risposta insieme al codice di errore Si può leggere su risposte qui e qui per i dettagli make_response API
Nel codice pallone, si dovrebbe idealmente specificare il tipo MIME il più spesso possibile, così:
return html_page_str, 200, {'ContentType':'text/html'}
return json.dumps({'success':True}), 200, {'ContentType':'application/json'}
... etc
Nel mio caso ho dovuto combinare quanto sopra, al fine di farlo funzionare
return Response(json.dumps({'Error': 'Error in payload'}),
status=422,
mimetype="application/json")
si può anche utilizzare per l'invio di flask_api risposta ??p>
from flask_api import status
@app.route('/your-api/')
def empty_view(self):
content = {'your content here'}
return content, status.HTTP_201_CREATED
è possibile trovare di riferimento qui http://www.flaskapi.org/api -guida / di stato codici /