scala – 告诉Swagger请求体可以是单个对象或对象列表
我使用Swagger和
Scala来记录我的REST API.我想为POST,PUT和DELETE启用批量操作,并希望相同的路由接受单个对象或对象集合作为正文内容.
有没有办法告诉Swagger param是A类型的值列表还是A类型的单个值? 像REST的varargs之类的东西. 解决方法
这取决于您使用的是OpenAPI 3.0还是OpenAPI(Swagger)2.0. OpenAPI使用JSON Schema的扩展子集来描述主体有效负载. JSON Schema提供oneOf和anyOf关键字来定义实例的多个可能模式.但是,不同版本的OpenAPI支持不同的JSON Schema关键字集. OpenAPI 3.0支持oneOf和anyOf,因此您可以按如下方式描述这样的对象或对象数组: openapi: 3.0.0 ... components: schemas: A: type: object Body: oneOf: - $ref: '#/components/schemas/A' - type: array items: $ref: '#/components/schemas/A' 在上面的示例中,Body可以是对象A或对象A的数组. OpenAPI(Swagger)2.0 does not support swagger: '2.0' ... definitions: A: type: object # Note that Body does not have a "type" Body: description: Can be object `A` or an array of `A` 这意味着Body可以是任何东西 – 一个对象(任何对象!),一个数组(包含任何项目!),也是一个原语(字符串,数字等).在这种情况下,无法定义确切的Body结构.您只能在说明中口头描述. 您需要使用OpenAPI 3.0来定义您的确切方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |