Unser Ziel ist es, eine API zu entwickeln, in der Sie /data/save/ POSTEN können, die einige JSON-Daten wie unten akzeptiert. Die Hauptanforderung, dass JSON eines der folgenden Attribute enthält: "Attribut1", "Attribut2", "Attribut3". Wenn nämlich ein Attribut existiert, sollte ein anderes nicht existieren.

{
   "name": "test name",
   "attribute1": [
       "test1", "test2"
    ]
    or
    "attribute2": [
        "test3", "test4"
     ]
     or
     "attribute3": true
}

Die Frage ist, wie eine solche API so gestaltet werden kann, dass sie einfach zu verwenden und von der Client-Seite nicht verwirrt ist.

Es wäre gut, einige Best Practices in dieser Richtung zu kennen.

2
fashuser 29 Dez. 2015 im 15:18

3 Antworten

Beste Antwort

Ich würde ein zurückkehren

400 schlechte Anfrage

Die Anforderung konnte vom Server aufgrund einer fehlerhaften Syntax nicht verstanden werden. Der Client sollte die Anfrage NICHT ohne Änderungen wiederholen.

Und eine Phrase, die erklärt, dass mehrere Attribute nicht unterstützt werden.

1
sschrass 29 Dez. 2015 im 12:28

Ich bin damit einverstanden, dass eine solche API für die Client-Seite verwirrend ist.

Was ist mit dem Erstellen verschiedener Endpunkte:

POST / data / save / attribute1 json_1

POST / data / save / attribute2 json_2

1
Milap 29 Dez. 2015 im 12:38

Ein benutzerdefinierter Medientyp sollte klarstellen, wie Sie Ihre API verwenden. Es sollte angegeben werden, was in Ihre Anfrage aufgenommen werden soll.

Eine andere Lösung könnte darin bestehen, die Anfrage wie folgt zu erstellen:

{
   "name": "test name",
   "attr-key": "my-attribute1",
   "values": ["test1", "test2"]
}
0
Community 23 Mai 2017 im 12:04