Ich möchte einen Rest-Service implementieren, der ein Objekt aufnimmt und zurückgibt, wenn das Objekt mit bestimmten Parametern verarbeitet werden kann. Das Problem ist, dass abhängig davon, ob das Objekt berechtigt ist oder nicht die Struktur der Antwort ist sehr unterschiedlich. Als ein Beispiel für den Fall, dass das Objekt verarbeitet werden soll, ist es einem Verarbeitungstyp und einer Priorität zugeordnet. Wenn dies nicht möglich ist, wird der Grund dafür zurückgegeben. Welches ist die sauberste Art der Rückgabe unterschiedlicher Strukturen für die gleiche Anfrage. Es gibt drei Möglichkeiten, die ich mir vorstellen kann, aber Sie können zusätzliche Optionen hinzufügen.Sauberste Möglichkeit, verschiedene Strukturen für die gleiche Anfrage zurückzugeben
Option A:
Rückgabedaten als Umschlag mit dem Feld enthalten, die
{
"eligible": bool,
"data": {
// Data depending on whether elbile or not
}
}
Option B strukturiert ist:
Verwenden unterschiedliche HTTP-Statuscode und Struktur json entsprechend. Dies ist irgendwie unrein, da es sich nicht wirklich um einen Fehler in der Anfrage handelt, sondern um eine gültige Antwort.
Option C:
Verwenden Sie verschiedene Felder für die Daten senden im Falle von berechtigt oder nicht und lassen Sie ein Feld Null sein.
{
"eligible": bool,
"dataEligible": {
"processingType": "",
"priority": 0
}
"dataNonEligible": {
"reason": "",
}
}
Danke für die Antwort. Ich dachte 422 und korrigiere mich, wenn ich falsch liege. Bedeutet das aber nicht, dass die Sendeanforderung semantische Fehler enthält? – PKuhn
Nein, 422 ist ohne Fehler, aber der Server kann es aus einem dem Kunden unbekannten Grund nicht verarbeiten – libik