Struttura del codice del framework di terze parti [chiuso]

-1

Un'API restituisce sempre 200 OK, un problema?

    
posta James Hatton 10.04.2016 - 13:47
fonte

1 risposta

3

200 OK

Restituire sempre "200 OK" è una pratica terribile. Uccide davvero chiunque cerchi di scrivere un client contro l'API. I framework client REST si basano su codici di stato precisi e si interrompono se ricevono "200 OK" anche quando non è OK. L'autore del client REST dovrà saltare i cerchi per farlo funzionare correttamente.

Come caso di studio, di recente mi è stato assegnato il compito di integrare con un'API REST utilizzando Java e il framework Spring. Ora, Spring è un framework molto comune e maturo, sono sempre stato in grado di fare affidamento su di esso. Tuttavia, questa volta non si sarebbe autenticato con l'endpoint REST, a prescindere da quello che ho fatto, e in passato avevo persino implementato client molto simili - con autenticazione -

Dopo un po 'di tempo di debugging e controllo del mio codice e configurazione, ho realizzato che l'API REST restituisce "403 Forbidden" quando voleva che autenticassi, mentre il codice corretto sarebbe stato "401 Non autorizzato"! Spring avrebbe inviato automaticamente il codice di autenticazione di base HTTP come risposta a 401, ma non a 403, quindi ho dovuto creare un sacco di codice aggiuntivo per gestire la situazione.

Questa volta ha restituito almeno un codice di errore, ma restituire "200 OK" avrebbe rotto il sistema almeno altrettanto male. Questo perché l'oggetto JSON di risposta dovrebbe essere automaticamente deserializzato in un oggetto. Se lo stato è "200 OK" ma il contenuto non è il tipo previsto di oggetto JSON (o di un oggetto JSON!), Beh, puoi vedere che ci saranno dei problemi.

    
risposta data 10.04.2016 - 23:34
fonte

Leggi altre domande sui tag