首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swagger架构中的oneOf不起作用

Swagger架构中的oneOf不起作用
EN

Stack Overflow用户
提问于 2016-04-27 01:52:57
回答 3查看 27.7K关注 0票数 16

我想将PaymentMethod定义如下。swagger.yaml是否支持oneOf?

代码语言:javascript
运行
复制
PaymentMethod:
      oneOf:
        - $ref: '#/definitions/NewPaymentMethod'
        - $ref: '#/definitions/ExistPaymentMethod'

ExistPaymentMethod将只有id和cardNumber,其中NewPaymentMethod没有id,但有所有其他详细信息,例如cardNumbercardholderNamecardholderAddress等。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-14 11:02:07

在OpenAPI版本3 (openapi: 3.0.0)中支持oneOf,但在Swagger版本2 (swagger: '2.0')中不支持。

代码语言:javascript
运行
复制
PaymentMethod:
  oneOf:
    - $ref: '#/components/schemas/NewPaymentMethod'
    - $ref: '#/components/schemas/ExistPaymentMethod'

GitHub发行编号:https://github.com/OAI/OpenAPI-Specification/issues/333

有关OpenAPI 3.0与2.0相比的更改列表,请参阅:https://blog.readme.io/an-example-filled-guide-to-swagger-3-2/

票数 28
EN

Stack Overflow用户

发布于 2016-05-01 10:24:02

Swagger所使用的仅受JSON Schema的启发。它们并没有太多偏离JSON Schema,但是它们省略了一些东西,添加了一些东西,并改变了一些行为。Swagger遗漏的一件事是oneOf

欲了解更多详情,请访问http://swagger.io/specification/#schemaObject

票数 5
EN

Stack Overflow用户

发布于 2019-03-19 16:27:09

OneOf、anyOf和其他类似指令不受swagger 2.0支持,但在Open API3.0规范中受支持。

您需要将Swagger 2.0文件转换为Open API 3.0文件。

这是链接- https://blog.runscope.com/posts/tutorial-upgrading-swagger-2-api-definition-to-openapi-3

这里有一个更有用的链接-- https://github.com/swagger-api/swagger-ui/issues/3803

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36872277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档