当前位置: 首页 > 知识库问答 >
问题:

招摇模式中的其中一个不起作用

葛磊
2023-03-14

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

PaymentMethod:
      oneOf:
        - $ref: '#/definitions/NewPaymentMethod'
        - $ref: '#/definitions/ExistPaymentMethod'

ExistPaymentmethod将只有id,而cardNumber其中NewPaymentmethod将没有id,而是所有其他详细信息,例如cardNumbercardholderNamecardholderAddress等。

共有3个答案

蔺霄
2023-03-14

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

您需要将Swagger 2.0文件转换为Open API3.0文件。

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

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

段干河
2023-03-14

Swagger使用的东西只是受到JSON Schema的启发,他们并没有偏离JSON Schema太多,但是他们遗漏了一些东西,添加了一些东西,改变了一些行为,Swagger遗漏的东西之一是oneOf

有关更多详细信息,请访问http://swagger.io/specification/#schemaObject

焦宁
2023-03-14

OpenAPI版本3(OpenAPI:3.0.0)支持其中一个,但在Swagger版本2(Swagger:'2.0')中不支持。

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/

 类似资料:
  • 我的pom.xml 招摇过市配置 服务器日志 它说映射: 但这些都不起作用(404): 如果我使用sping-fox较低版本,那么我将在我的日志中得到它已映射{[/v2/api-docs}],方法=[GET]。但是,我看不到在那里生成的任何json。

  • 所以我需要邮递员的文件。问题是我的API需要身份验证,所以我不能使用Swagger来测试它们。当我从控制器中删除授权并使用Swagger时,它会工作,但使用Postman时,它会返回以下错误。 请求的邮递员标题:

  • 我开发了一个工具,使用JSch(一个java库,用于通过ssh与其他机器通信)一次性向不同的linux机器发送一行命令 因此,我们的客户需要更改所有机器上的密码。谷歌帮助我达到了这一点: 其中“123”是新密码。 命令将执行,但这始终是输出: 这表明命令没有成功。 请注意,这是一个运行linux的小型设备。这是一个私人编译的版本,尽可能紧凑。其实我对linux了解不多! 这是机器信息: 密码帮助:

  • 问题内容: 我从学习Spring开始,我创建了一个基本项目,该项目创建数据库,插入值,然后在Web浏览器中打印它。我的问题是,当我将RestController和主类放在同一个包中时- 可以,但是我想将其分发到其他包中,而当我创建新包时,移动RestController则不起作用。让我们见面解释: 我的项目看起来像: 我的控制器看起来: 当一切都在包,我写的网络浏览器的http://本地主机:80

  • 我正在尝试对具有相同生命周期的许多不同的Postgresql架构进行迁移。根据飞行路线文档,这种情况应该有效。我的 ANT 脚本中有以下内容:当我运行迁移时,更改仅应用于第一个(默认)架构。 是我做错了什么,还是flyway.schemas属性只对clean有效? 谢谢