Domanda

Sto sviluppando una semplice API RESTful, e assolutamente in amore con il modo minimalista è.Ma io sono incerto sul corretto codici di risposta HTTP per le varie situazioni:

  1. Di un formato non corretto query

  2. Query correttamente formata, si riferisce a una risorsa che non esiste

  3. Risorsa eliminato con successo

  4. Risorse stato modificato

Attualmente sto pensando che sarebbe 1 403 Forbidden;2 sarebbe 410 Gone;3 e 4 sarebbe 202 Accepted.Suonano giusto?

È stato utile?

Soluzione

Per #1, 403 suggerisce l'applicazione capito la richiesta, ma non adempiere ad essa (es.utente corrente non ha il permesso di farlo per qualche motivo).Penso che 400 bad request potrebbe avere più senso in questo caso.

Per #2 - penso 404 avrebbe più senso cioèla risorsa non viene trovato, a meno che il la risorsa ha fatto esistere a un certo punto, e poi è stato eliminato, nel qual caso 410 sarebbe giusto - ma non sono molti i clienti sanno cosa fare con 410.

Per #3 & #4 - 200 se trattati l'eliminazione di successo, 202, se la cancellazione è in coda e saranno trattati presso una data successiva di "fuori banda".

RFC 2616 fornisce grandi spiegazioni del significato di ogni codice di risposta di mezzi abbastanza comprensibile.

Altri suggerimenti

  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - risorsa creato con successo

1).400 - standard bad request, 403 significa che la richiesta è formattato correttamente, ma non è consentito l'accesso

2).404 - 410 implica che la risorsa esisteva, ma è stato volutamente spostato

3).e 4).200 se l'azione è avvenuto con successo dal momento in cui si invia la risposta, 202, se l'azione è in corso.In pratica 202 è probabile che per eliminare le azioni (in cui potrebbero essere soggette a revisione), ma si può o non desidera restituire immediatamente un 200 comunque così sembra effettivamente cancellati per l'utente.Che è una questione di design imho.

Ottenere i Richardson & Ruby libro - ha un'utile appendice sulla tua domanda e, è necessario leggere in entrambi i modi

perché non usare lo standard codici di risposta http .Si dovrebbe ottenere tutte le ottimizzazioni ( per ex, 303, 304 )/ infrastrutturali per l'http per libero .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top