如何在OpenAPI(Swagger)中将$ ref属性声明为readOnly?

Mar*_*ard 4 swagger swagger-2.0 openapi

我试图在此示例中为“房屋”添加一个只读字段。这房子是我想成为只读的另一种模型。

在此示例中,可以将Dogs数组设置为readOnly没有错误,但是当我将House的单一定义设置readOnly为时,在Swagger编辑器中会收到以下警告:

$ refs不允许同级值

我知道这是因为模型中的所有内容都在这里继承。那么,如何定义写API调用不能在此端点中定义“房屋”,同时又允许在另一个API端点中创建和更新房屋?

Pets:
  properties:
    id:
      type: string
      example: AAAAE12-1123AEF-1122312123
      readOnly: true
    name:
      type: string
      example: My Default Name
    text:
      type: string
      example: My Default Text
  Dogs:
    type: array
    readOnly: true
    items:
      $ref: '#/definitions/Dog'    
  House:
    readOnly: true
    $ref: '#/definitions/House'
Run Code Online (Sandbox Code Playgroud)

Hel*_*len 10

您需要allOf将结合$ref其他属性:

  House:
    readOnly: true
    allOf:
      - $ref: '#/definitions/House'
Run Code Online (Sandbox Code Playgroud)

  • @MajidAkbari 那么这是一个工具问题。使用该工具打开一个问题。 (3认同)