2017-10-05 3 views
0

Für einen Standard-JSON-Dienst wird der Inhaltstyp application/json erwartet (siehe What is the correct JSON content type?).Content-Type für striktes JSON-Objekt

Seit null, 123 oder "foo" gültige JSON-Dokumente sind, jede Dienstleistung Herstellung application/json ist alowed als Körper einer von denen zurückzukehren.

Was passiert, wenn ich sicherstellen möchten, dass ein Dienst eine gültige JSON Objekt oder eine gültige JSON Array zurückkehren wird?

Beispiele für gültige Objekte

{} 

oder

{ 
    "foo": "bar" 
} 

Beispiele für ungültige Objekte

123 

oder

null 

oder

[ 
    { "foo": "bar" } 
] 

(dies würde man ein gültiges Array)

+0

Ich werde auf einen Experten warten, um zu antworten, aber ich denke, dass es so etwas nicht gibt. Da es sich bei HTTP nur um Text handelt, kann ich eine Antwort im XML-Format senden, selbst wenn der Client den Header "Accept" als "application/json" sendet (ja, das wäre eine schlechte Übung). Ich denke, der einzige Weg, um sicherzustellen, dass es sich um einen gültigen JSON handelt, ist die Validierung der Antwort auf der Client-Seite. –

+0

Das ist meine erste Schätzung auch. Aber ich bin ein bisschen verloren in der ganzen RFC, also im Falle einer Überraschung ... –

Antwort

0

Sie JSON Schema verwenden können, um die erwarteten Antworten, gültig JSON Dokumente und wenden Sie die Strikt Sie in die sehen möchten, definieren, eingehende Antworten. Und Sie können die eingehenden Antworten anhand der definierten JSON-Schemas überprüfen. Es gibt viele JSON-Schema-Validatoren, die als Open Source verfügbar sind. Wenn Sie node.js verwenden, ist jsonschema ein gutes Modul dafür. Sie können sehr streng in den JSON-Schemadefinitionen sein, wie mit additionalProperties: false etc.

Verwandte Themen