2017-10-05 9 views
0

標準のJSONサービスの場合、コンテンツタイプはapplication/jsonWhat is the correct JSON content type?参照)になると予想されます。厳密なJSONオブジェクトのコンテンツタイプ

null123または"foo"は有効なJSON文書であるので、application/jsonを産生する任意のサービスは体として、それらのいずれかを返すようにalowedされます。

私はサービスが有効なJSONオブジェクトまたは有効なJSON 配列を返すことを確実にしたい場合はどう?有効なオブジェクトの

例無効なオブジェクトの

{} 

または

{ 
    "foo": "bar" 
} 

123 

または

null 

または

[ 
    { "foo": "bar" } 
] 

は、あなたが期待される応答、有効なJSON文書を定義するために JSON Schemaを使用して、あなたが見たい厳密に適用することができます

+0

専門家が答えを待つことはありますが、そのようなことはないと思います。私たちがHTTPを扱っているのはテキストだけなので、クライアントが "Accept/Accept"ヘッダーを "application/json"として送信してもXML形式の応答を送信できます(これは悪い習慣です)。私はそれが有効なJSONであることを確認する唯一の方法は、クライアント側での応答を検証することだと思います。 –

+0

それは私の最初の推測です。しかし、私はすべてのRFCで失われているので、驚きの場合は... –

答えて

0

(これは有効な配列になります)着信応答。また、定義されたJSONスキーマに対する着信応答を検証できます。オープンソースで利用可能な多くのJSONスキーマ検証ツールがあります。 node.jsを使用する場合は、jsonschemaが良いモジュールです。 additionalProperties: falseなどのJSONスキーマの定義では非常に厳密にすることができます。