yaml - Swagger 文档错误 `Should be object`

标签 yaml swagger swagger-2.0 swagger-editor

我正在手动编写 swagger 文档。但是我遇到了一些错误 Should be object

我不知道为什么我在下面的代码中遇到错误。

events:
        $ref: "#/def/Events"

Events:
    type: "object"
    properties:
      oneOf:
        - $ref: '#/def/ClassRef'
        - $ref: '#/def/TypeRef'
        - $ref: '#/def/EventRef'
        - $ref: '#/def/MarketRef'
        - $ref: '#/def/OutcomeRef'

  ClassRef:  # <--- I get the "should be object" error here
    type: "object"
    properties:
      classRef:
        type: "string"
        
  TypeRef:
    type: "object"
    properties:
      typeRef:
        type: "string"
        
  EventRef:
    type: "object"
    properties:
      eventRef:
        type: "string"
        
  MarketRef:
    type: "object"
    properties:
      marketRef:
        type: "string"
  
  OutcomeRef:
    type: "object"
    properties:
      outcomeRef:
        type: "string"

我在 ClassRef 行中收到此错误。有人可以帮帮我吗

最佳答案

OpenAPI 2.0 (swagger: '2.0') 不支持oneOf,需要OpenAPI 3.0 (openapi: 3.0.0)使用 oneOf

假设您使用 OpenAPI 3.0,并且所有模式都位于 components/schemas 部分,请按如下方式更改 Events 模式:

Events:
  oneOf:
    - $ref: '#/components/schemas/ClassRef'
    - $ref: '#/components/schemas/TypeRef'
    - $ref: '#/components/schemas/EventRef'
    - $ref: '#/components/schemas/MarketRef'
    - $ref: '#/components/schemas/OutcomeRef'

关于yaml - Swagger 文档错误 `Should be object`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61616027/

相关文章:

c# - Swagger 在 ASP.CORE 3 中为字典生成不正确的 URL

java - 为 @ApiOperations 为 springfox swagger2 定义自定义 json 序列化器

python - Swagger/OpenAPI 规范的特点是文件上传被 Google Endpoints 拒绝

java - 是否可以将 application.yml 变量放入属性文件中?

collections - 如何在我的 YAML Swagger 定义中将属性类型定义为字符串列表(列表、集合、数组、集合)

python - 转义单引号时出现问题

swagger - 如何更改 Swagger Codegen 生成的 JavaScript 模块名称?

regex - 使用 SED 替换缩进的文本

swagger - 将 API key 和 secret 用于 Swagger 安全方案

swagger-2.0 - 嵌套异常是 java.lang.NoClassDefFoundError : com/fasterxml/jackson/databind/ser/std/ToStringSerializerBase