我正在用swagger.io起草一个应用程序接口文档,并试图让它适合我们的用例。系统将接收和处理来自所有来源的数据,并且每个来源都将具有不同的字段集。
虽然处理的产品共享相同的架构,但我们也希望将输入包含在架构中以供参考。例如,给定
{
"foo": "bar"
"bar": "baz"
}处理的结果是
{
"original": {
"foo": "bar",
"bar": "baz"
}
"processed": {
"stdFieldA": "bar",
"stdFieldB": "baz"
}
}假设对于来自不同来源的每个输入,我们最终都有stdFieldA和stdFieldB。因此我们拥有的响应模式对象
type: object
properties:
processed:
type: object
properties:
stdFieldA:
type: string
stdFieldB:
type: string既然我们已经定义了processed子对象,那么我们是否可以为原始输入定义一个自由格式对象,以便这个来自其他源的对象是有效的
{
"alpha": "lorem",
"beta": "ipsum"
}如果我没有得到任何答案,我对这个问题的解决办法是将原始输入存储为字符串(将原始输入转换为JSON字符串)。
发布于 2017-01-12 20:14:11
不带properties的type: object描述了一个自由格式对象。因此,响应模式可以是:
type: object
properties:
original:
type: object # <----------
processed:
type: object
properties:
stdFieldA:
type: string
stdFieldB:
type: stringhttps://stackoverflow.com/questions/41606152
复制相似问题