Art*_*kov 0 documentation rest swagger openapi
文档中的解释对我来说不清楚。我的 api 文档渲染后没有看到任何差异。
视觉上有什么区别?从逻辑上讲,映射是做什么的?例如
MySchema:
oneOf:
- $ref: '#/componets/schemas/SubSchema1'
- $ref: '#/componets/schemas/SubSchema2'
discriminator:
propertyName: some_property:
mapping:
TypeA: '#/componets/schemas/SubSchema1'
TypeB: '#/componets/schemas/SubSchema2'
Run Code Online (Sandbox Code Playgroud)
所以如果你使用editor.swagger.io不会有太大区别。如果我想验证鉴别器,我会使用Redoc 。
让我们举个例子:您想要将读数转换为您首选的测量单位(即usStandard
)您的请求对象可能如下所示 -
{
"value": 7,
"unitOfMeasure": {
"type": "distance",
"value": "km"
}
}
Run Code Online (Sandbox Code Playgroud)
所以转换后你的 API 将返回
{
"value": 4.3496,
"unitOfMeasure": {
"type": "distance",
"value": "mi"
}
}
Run Code Online (Sandbox Code Playgroud)
因此,根据您的测量单位类型,您必须使用不同的模式。
如果type
是
distance
那么可能的值km
和mi
volume
那么可能的值L
和gal
因此,您的 OpenAPI 规范您的鉴别器将使用类型属性来确定要使用的模式。注意:在这种情况下,类型将是每个模式中的必需属性。
这和jackson的类型是一样的
@JsonTypeInfo(
use = JsonTypeInfo.Id.CUSTOM,
property = "type",
include = JsonTypeInfo.As.EXISTING_PROPERTY)
public abstract class UOM {
}
@JsonTypeName("distance")
public class DistanceUOM extends UOM {
}
Run Code Online (Sandbox Code Playgroud)
Jackson 将使用 type 来确定它应该反序列化到哪个类。
使用此用例创建了 github 要点请参阅此处
那么Redoc将如何渲染它(请参阅有一个下拉菜单来选择类型)
类型:距离
类型: 体积
归档时间: |
|
查看次数: |
2437 次 |
最近记录: |