Devo restituire l'errore: null nella risposta JSON?

1

Quando si progetta un'API RESTful che utilizza JSON per rispondere alle richieste, di solito restituisco un oggetto come questo quando si verifica un errore:

{
  "error": "Something bad happened",
  "error_code": "XXX"
}

Devo avere un "error": "" o "error": null nel mio oggetto quando non ci sono errori?

    
posta Mohsen 01.08.2013 - 08:02
fonte

1 risposta

3

Se la risposta è positiva, non includere error nella risposta. Esempio:

GET /product/15406/

200 OK
{
    "id": 15406,
    "name": "A cookie with pieces of chocolate",
    "price": 1.45,
    "is-available": true
}

D'altra parte, un errore sarebbe simile a:

GET /product/nan/

403 Forbidden
{
    "error": 5020,
    "error-message": "The specified product identifier cannot be converted to a number."
}

Note:

  • Modificare il codice di stato HTTP in caso di errore. Restituire 200 OK quando qualcosa è andato storto è stupido.

  • Non includere i campi di errore nella risposta positiva. Perchè vorresti? Non stai includendo price o is-available nella risposta errata, vero?

  • Usa le stringhe per testo e numeri per i numeri. Il tuo "error_code": "XXX" sembra che tu stia mettendo un numero come codice di errore, ma lo passi come una stringa. Se è un numero, dovrebbe rimanere un numero nella risposta. Si noti che l'utilizzo di stringhe come codici di errore può essere una buona soluzione: l'errore 5020 non è estremamente esplicito; errore "InvalidProductIdentifier" è.

risposta data 01.08.2013 - 08:34
fonte

Leggi altre domande sui tag