Chiamare il servizio RESTful dal browser e gestire le risposte di classe 4xx

0

Ho una risorsa chiamata Logins e invoco un GET tramite AJAX dal browser. Il comportamento attuale è quello di restituire un 404 quando non è possibile trovare lo specifico login.

Lo sto usando per verificare se un nome utente è in uso o meno. (quando si crea un nuovo utente, il nome utente deve essere univoco)

http://localhost/Logins/Matthew

Il codice AJAX funziona bene e può leggere il codice di stato della risposta, tuttavia la console del browser (firefox) lo segnala come un errore (tutti gli 404 sono). Questo mi porta a credere che potrebbe non essere la migliore idea per dare risposte di tipo non riuscito ai browser.

Preferirei che il browser non consideri questo caso eccezionale e lo segnali come un errore nella console, principalmente perché è allarmante quando gli strumenti per gli sviluppatori si accendono.

Dovrei:

  1. Ignora la console, 404s sono perfettamente validi in questo caso.
  2. Evita di utilizzare le risposte al codice di stato 4xx e restituire una risposta meno "riposante".
  3. Modificare la risorsa come Logins non ha senso per il caso d'uso.
  4. Qualcos'altro ...

I browser sono l'unico consumatore di questa API, quindi posso cambiarlo comunque che è più adatto a loro.

    
posta Matthew 14.04.2015 - 16:16
fonte

1 risposta

4

404 è perfettamente adatto per questo caso d'uso. I codici di stato 4xx sono codici di errore del client, quindi il browser li tratta come tali, e anche questo va perfettamente bene.

Un altro tipo di API (ad esempio JSON-RPC ) utilizzano approcci diversi, ma dal momento che stai andando RESTful, non cambiare codice di risposta solo per rendere l'output della console un aspetto gradevole - non è un caso d'uso, gli utenti non devono controllare l'output della console.

    
risposta data 14.04.2015 - 16:41
fonte

Leggi altre domande sui tag