Sto implementando un framework API REST e mi chiedo quale sia il comportamento consigliato, quando un client invia un parametro querystring non valido.Framework API REST. Comportamento consigliato per parametro querystring non valido
illustrerò quello che voglio dire con un esempio specifico: dire che ho un gestore API sul/api/contatti/endpoint, e il gestore fornisce un filtro querystring chiamato id
, che consente ai clienti di selezionare determinati contatti con gli ID forniti.
Quindi, una richiesta GET o DELETE potrebbe essere /api/contacts/?id=2&id=4&id=lalalala
.
Chiaramente, non esiste un contatto con id=lalalala
. In questo caso, come dovrebbe comportarsi il server?
Ignorare l'valida contatto con
id=lalalala
, e filtrare solo i contatti sulle ID validi, 2 e 4.rispondere con un codice di errore che indica questo errore. Se sì, quale codice di errore dovrebbe essere fornito?
Grazie in anticipo.
Modifica: Per chiarire; L'obiettivo principale del framework che sviluppo, è quello di avere un comportamento prevedibile e quindi codici di risposta. Per questo motivo, voglio che i client utilizzino un'API costruita su questo framework, per aspettarsi le sorprese meno possibili. Quindi, la domanda è fondamentalmente: l'API dovrebbe restituire un errore in questo caso (e se sì, quale)? Oppure ignora le voci di filtro non valide e filtra solo i parametri querystring corretti?
Darrel, grazie per la risposta. Non sarei d'accordo con te anche se la risposta dovrebbe essere un errore 404, poiché l'endpoint dell'API è corretto e mappa su una risorsa valida (ad esempio/api/contacts /). Un errore 400 avrebbe più senso suppongo :) –
Darrel, hai sicuramente un punto qui. Come inizialmente hai detto, anche se seguendo la lettera della legge la risposta avrebbe potuto essere un errore 404, mi sto appoggiando più verso un errore 400. –