openapi - 如何从引用模式中排除属性?

标签 openapi

我有一个用于创建地址的端点和一个用于更新地址的端点。在 OpenAPI 规范中对此进行描述我想使用一个组件作为地址,这样我就不必两次指定地址。现在的问题是,用于更新的地址对象应该包含属性“id”,但用于创建的地址对象却没有。

所以基本上,我正在寻找一种方法来描述组件部分中的完整地址(包括 id 属性),然后引用创建端点,但不包括那里的“id”属性。

最佳答案

您可以使用 allOf 关键字扩展另一种类型,as documented here

在下面的示例中,creationType 只有一个name 属性,但是updateType 具有creationType 的所有属性> 以及一个 id 属性。

例子:

components:
  schemas:
    creationType:
      type: object
      properties:
        name:
          type: string
    updateType:
      allOf:
      - $ref: '#/components/schemas/creationType'
      - type: object
        required:
        - id
        properties:
          id:
            type: string

关于openapi - 如何从引用模式中排除属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60472631/

相关文章:

amazon-web-services - 如何在整个 Swagger YAML 文档中重复使用我的 x-amazon-apigateway-integration 定义?

spring-boot - 如何解决 openapi-generator-maven-plugin 使用不推荐使用的类?

swagger - Autorest 错误 - swagger.json' 不是有效的 OpenAPI 2.0 定义(预期为 'swagger: 2.0')

google-cloud-platform - GCP API网关返回403,表示托管服务 "is not enabled for the project"

spring-boot - 例如,是否有第三方服务可以进行 api key 管理而不要求用户在 GCP 上创建帐户?

java - OpenAPI/Swagger 构建具有多个相同键的对象

postman - 如果未设置 'bearerformat',则不应具有 'scheme: bearer' 属性

node.js - Google Cloud Endpoints - 方法不存在 - OpenAPI yaml 规范

swagger - 如何在 OpenAPI (Swagger) 中描述这个 POST JSON 请求正文?

java - openapi生成-初始化对象