Non silenziosamente ignorare la richiesta
io non sono sicuro di come si potrebbe in ogni caso, oltre al server di chiudere la connessione senza inviare una risposta.
400 è buono, come è 409. Si potrebbe anche prendere in considerazione 403 Forbidden: Il server capito la tua richiesta, ma si rifiuta di compierla.
400 è in genere per le richieste di mal-formata.
403 fa bene quando la richiesta è stata sufficientemente ben formata che il codice del server è stato in grado di analizzarlo e capire a cosa serviva la richiesta. Penso che la maggior parte soddisfi il tuo requisito qui.
Tuttavia, una linea nella tua domanda mi preoccupa:
tentativi di specificare un nuovo valore per una colonna che non esiste nel database
Le richieste non devono essere modificare i valori delle colonne in un database. Dovrebbero modificare il contenuto di una risorsa. I due non sono la stessa cosa. È facile cadere nella trappola di pensare "oh, lascia solo esporre questo oggetto dominio come una risorsa HTTP" ma ciò può causare problemi di scalabilità lungo la linea. In generale, dovresti avere più risorse nello spazio URI rispetto agli oggetti del modello. Ciò consente di memorizzare nella cache le parti abbastanza statiche del modello con una politica diversa rispetto a quelle molto più dinamiche.
Ad esempio, in un sistema di elaborazione degli ordini, l'indirizzo di consegna cambia molto di rado, ma il rilevatore di avanzamento potrebbe cambiare ogni pochi minuti. Dare ai due dati diversi URI e differenti criteri di cache.
fonte
2012-12-04 08:46:28
+1 per il titolo ... –
@DonalFellows Grazie. Apprezzerei la tua revisione critica dell'occhio [le mie altre risposte REST] (http://stackoverflow.com/search?q=user:760706+%5Brest%5D), dato che sono abbastanza nuovo sull'argomento. –
Quello che intendevo per "ignorare silenziosamente" è che il server risponde con un '200 OK'. – argentpepper