Attualmente ho del codice per una vista basata su Django REST Framework. Ho utilizzato una classe di eccezioni del cliente, ma idealmente voglio utilizzare le eccezioni di Django REST integrate.Django REST Exceptions
Dal codice seguente ritengo che questo probabilmente non sia il modo migliore o più pulito per utilizzare al massimo le eccezioni REST Framework.
Qualcuno ha qualche buon esempio in cui sta riscontrando problemi e li restituisce in modo pulito con il REST integrato nelle eccezioni?
class JSONResponse(HttpResponse):
def __init__(self, data, **kwargs):
content = JSONRenderer().render(data)
kwargs['content_type'] = 'application/json'
super(JSONResponse, self).__init__(content, **kwargs)
def queryInput(request):
try:
auth_token = session_id = getAuthHeader(request)
if not auth_token:
return JSONResponse({'detail' : "fail", "error" : "No X-Auth-Token Found", "data" : None}, status=500)
if request.method:
data = JSONParser().parse(request)
serializer = queryInputSerializer(data=data)
if request.method == 'POST':
if serializer.is_valid():
input= serializer.data["input"]
fetchData = MainRunner(input=input,auth_token=auth_token)
main_data = fetchData.main()
if main_data:
return JSONResponse({'detail' : "success", "error" : None, "data" : main_data}, status=201)
return JSONResponse({'detail' : "Unknown Error","error" : True, "data" : None}, status=500)
except Exception as e:
return JSONResponse({'error' : str(e)},status=500)
Questo solleva solo l'eccezione. Non dovrebbe anche inviare la risposta? – felix001
Prova rilancio APIException ("apparirà questo errore") o PermissionDenied, ValidationError Non sei sicuro di ParserError – Ramast
@ felix001 L'eccezione viene convertito in una risposta, vedere la mia risposta per ulteriori informazioni – EmptyFlash