427 messaggi dal 13 novembre 2009
Ciao,
un parere...se in una action devo gestire una risposta che un elenco di errori List<string> a fronte di una risposta attesa secondo voi è un 200 o un 400
es
public Person Get(id)
{
dynamic response;
List<string> errors = Validate(); ///è un esempio
if(errors.Count > 0)
{
return response.errors = errors; (httpStatus 200 o 400?)
}
Person person = contect.Persons.Get(id);
if(Person != null)
return Person (httpstatus 200);
else
return 404 (not found;
}

io la farei httpstatus 400. Se mi arriva un 200 allora è sicuramente Person, ma se mi arriva un 400 verifico la presenza di errors e ciclo
Modificato da flaviovb il 04 ottobre 2018 19.00 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
se la validazione fallisce per colpa dei dati forniti dal client, allora è corretto restituire uno status code 400.
Però non ho ben capito che tipo di validazione fai su un'action Get(id). Qui il client fornisce solo l'id e quindi credo che l'unico caso in cui abbia senso restituire 400 sia quello in cui hai degli ID parlanti alfanumerici e ti viene fornito un valore non conforme alla loro sintassi.

Es. ipotizzando che l'ID abbia la forma di un codice fiscale, ti viene fornito un valore "blahblahblah" che non è conforme alla struttura di un codice fiscale, oppure ha l'ultimo carattere di controllo che non corrisponde.

ciao,
Moreno

Enjoy learning and just keep making
427 messaggi dal 13 novembre 2009
È un banale esempio per dire che se un 200 mi restituisce Person, nel caso il metodo Validate mi restituisca una lista di errori maggiore di 0 vorrei restituire quella ma a quel punto ho una risposta 200 o 400?
11.886 messaggi dal 09 febbraio 2002
Contributi
Va bene restituire 400 se la validazione fallisce a causa di dati non corretti forniti dal client.
Se invece la validazione fallisce a causa di un'eccezione (es. non è disponibile il database su cui devi fare delle verifiche) allora lo status code andrebbe impostato su 500 (è colpa del server).

Del resto, se il metodo Get da cui mi aspetto un Person mi restituisce invece una lista di errori, lo status code non può essere 200.

ciao,
Moreno
Modificato da BrightSoul il 04 ottobre 2018 22.13 -

Enjoy learning and just keep making
427 messaggi dal 13 novembre 2009
Grazie per la conferma. Mi stavo ponendo un dubbio visto anche la gestione dei decorator di sqagger

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.