严格JSON对象的内容类型
问题描述:
对于标准JSON服务,内容类型预计为application/json
(请参阅What is the correct JSON content type?)。严格JSON对象的内容类型
由于null
,123
或"foo"
是有效的JSON文件,任何生产application/json
服务alowed返回那些为体之一。
如果我想以确保服务将返回一个有效的JSON对象或一个有效的JSON 阵列?有效对象
实例无效对象
123
或
的{}
或
{
"foo": "bar"
}
实例
null
或
[
{ "foo": "bar" }
]
(这个会是一个有效的数组)
答
您可以使用JSON Schema来定义所期望的响应,有效的JSON文件和应用您希望在见到严传入的回应。您可以根据定义的JSON模式验证传入响应。有许多JSON Schema验证器可用于开源。如果你使用node.js,jsonschema是一个很好的模块。您可以在JSON模式定义非常严格,如使用additionalProperties: false
等。
我会等待专家回答,但我猜这是没有的。由于我们正在处理HTTP,它只是文本,所以即使客户端将“Accept”头作为“application/json”发送(即,这将是一种不好的做法),我也可以以XML格式发送响应。我想确保这是一个有效的JSON的唯一方法是验证客户端的响应。 –
这也是我的第一个猜测。但是我在所有的RFC中都有点迷路,所以如果有意外的话...... –