Sto lavorando a un servizio REST in cui sto cercando di trovare una risposta JSON che dovrei tornare indietro. Di seguito è riportato il disegno che sono in grado di elaborare in cui ogni riga è una risposta per ogni richiesta, quindi abbiamo tre risposte totali per tre richieste racchiuse attorno a un array.
In questo passerò il codice di stato HTTP come 200:
[
{ "response": "{\"hello\":1,\"world\":\"4\"}", "aging": "123456", "bandwidth": "100" , "error": "OK", "status": "SUCCESS" }
{ "response": "{\"hello\":2,\"world\":\"5\"}", "aging": "5432", "bandwidth": "134" , "error": "OK", "status": "SUCCESS" }
{ "response": "{\"hello\":3,\"world\":\"6\"}", "aging": "6789", "bandwidth": "234" , "error": "OK", "status": "SUCCESS" }
]
Allo stesso modo, posso avere anche una risposta inferiore se una richiesta fallisce e inviare il codice di stato HTTP come 202 poiché è una risposta parziale.
[
{ "response": "{\"hello\":1,\"world\":\"4\"}", "aging": "123456", "bandwidth": "100" , "error": "OK", "status": "SUCCESS" }
{ "response": null, "aging": "0", "bandwidth": "0" , "error": "Some Error", "status": "ERROR" }
{ "response": "{\"hello\":3,\"world\":\"6\"}", "aging": "6789", "bandwidth": "234" , "error": "OK", "status": "SUCCESS" }
]
Allo stesso modo, posso avere una risposta inferiore se tutte le richieste falliscono.
[
{ "response": null, "aging": "0", "bandwidth": "0" , "error": "Some Other Error", "status": "ERROR" }
{ "response": null, "aging": "0", "bandwidth": "0" , "error": "Some Error", "status": "ERROR" }
{ "response": null, "aging": "0", "bandwidth": "0" , "error": "Some New Error", "status": "ERROR" }
]
Sto superando la risposta JSON serializzando sotto l'oggetto risposta:
public class TestResponse {
private final String response;
private final ErrorCodeEnum error;
private final StatusCodeEnum status;
private final String aging;
private final String bandwidth;
// .. constructors and getters here
}
Sto cercando di capire, questo è il miglior design per la restituzione della risposta JSON per più casi di risposta in un servizio REST? O c'è un modo migliore per restituire una risposta JSON con tutti i campi appropriati?
L'unico problema che ho è - per una risposta corretta, la mia stringa JSON è sfuggita con le barre nella risposta archiviata nel mio JSON finale. Non sono sicuro che sia un buon approccio nel servizio REST.
Il mio servizio di riposo chiamerà una libreria che sta utilizzando internamente e quella libreria restituirà un elenco e quindi sto serializzando questo elenco in JSON Array come mostrato sopra.