Rest 使用不同的验证规则重用OpenAPI/Swagger定义?

Rest 使用不同的验证规则重用OpenAPI/Swagger定义?,rest,swagger,openapi,Rest,Swagger,Openapi,假设我有一个带有用户资源的RESTAPI。使用用户资源有三种方法:POST创建、GET下载和PATCH更改。所有方法都在相同的用户类型上运行,但具有不同的必需属性–当使用POST创建用户时,除用户ID之外的所有请求字段都是必需的;当使用GET下载时,所有响应字段都是必需的,包括ID,当使用补丁更改时,所有请求字段都是可选的,可以为空 我能用OpenAPI/Swagger简洁地描述一下吗?我只想描述一次用户类型,然后只说明每个方法需要/可以为空的字段。有点像这样,在伪代码中: definition

假设我有一个带有用户资源的RESTAPI。使用用户资源有三种方法:
POST
创建、
GET
下载和
PATCH
更改。所有方法都在相同的用户类型上运行,但具有不同的必需属性–当使用
POST
创建用户时,除用户ID之外的所有请求字段都是必需的;当使用
GET
下载时,所有响应字段都是必需的,包括ID,当使用
补丁更改时,所有请求字段都是可选的,可以为空

我能用OpenAPI/Swagger简洁地描述一下吗?我只想描述一次用户类型,然后只说明每个方法需要/可以为空的字段。有点像这样,在伪代码中:

definitions:
  User:
    properties:
      id:
        type: integer
      name:
        type: string
      …
paths:
  /users
    post:
      request:
        schema: User
        required: [name, …]
        nullable: […]
      response:
        schema: User
        required: [id, name, …]
        nullable: […]
  /users/{id}:
    get:
      response:
        schema: User
        required: [id, name, …]
        nullable: […]
    patch:
      request:
        schema: User
        required: []
        nullable: [name, …]
这样,我就不必重复所有字段定义,同时为每个方法描述特定的约束。可能吗?这有意义吗