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

Swagger: 不允许的其他属性: allOf

缪晋
2023-03-14

我正试图通过使用< code>allOf来解决这个swagger API继承的问题。这是我的swagger yaml文件。

swagger: '2.0'
info:
  title: Test API
  version: '1'
basePath: /api/v1
schemes:
  - https
produces:
  - application/json

paths:
  /users:
    get:
      summary: Collection of users
      tags:
        - users
      responses:
        200:
          description: A list of Users
          schema:
            $ref: "#/definitions/Users"        
        500:
          $ref: "#/responses/BadRequest"

definitions:
  User:
    required:
      - username
    properties:
      firstName:
        type: string
      lastName:
        type: string
      username:
        type: string
  Users:
    type: array
    items:
      $ref: "#/definitions/User"

responses:
  NonSuccess:
    description: Generic response for all non-success responses
    schema:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: integer
          description: The success code, 0 or -1.
        message:
          type: string
          description: The description message for this success code
        errors:
          type: array
          description: A map of errors within the request. Keyed by the parameter name and the values are the error details

  BadRequest:
    description: Invalid request parameters
    allOf:
      - $ref: "#/responses/NonSuccess"

当我将其粘贴到在线编辑器中时,我收到以下错误,我很难弄清楚。

✖ Swagger Error
Additional properties not allowed: allOf
Jump to line 60

✖ Swagger Error
Not a valid response definition
Jump to line 22

共有1个答案

贺景山
2023-03-14

allOf 标记只能用于架构对象。不过,您绝对可以在响应的架构部分使用它。下面是一个示例。

swagger: '2.0'
info:
  title: Test API
  version: '1'
basePath: /api/v1
schemes:
  - https
produces:
  - application/json

paths:
  /users:
    get:
      summary: Collection of users
      tags:
        - users
      responses:
        200:
          description: A list of Users
          schema:
            $ref: "#/definitions/Users"        
        500:
          $ref: "#/responses/BadRequest"

definitions:
  User:
    required:
      - username
    properties:
      firstName:
        type: string
      lastName:
        type: string
      username:
        type: string
  Users:
    type: array
    items:
      $ref: "#/definitions/User"

  Response:
    type: object
    required:
      - code
      - message
    properties:
      code:
        type: integer
        description: The success code, 0 or -1.
      message:
        type: string
        description: The description message for this success code
      errors:
        type: array
        description: A map of errors within the request. Keyed by the parameter name and the values are the error details

  BadRequest:
    type: object
    required:
      - validationErrors
    properties:
      validationErrors:
        type: array
        items:
          type: string

responses:
  NonSuccess:
    description: Generic response for a non-success
    schema:
      $ref: "#/definitions/Response"

  BadRequest:
    description: Invalid request parameters
    schema:
      allOf:
        - $ref: "#/definitions/Response"
        - $ref: "#/definitions/BadRequest"
 类似资料:
  • 总之,是否可以有一个声明某些基属性但不限制其他属性的接口?这是我目前的情况: 我使用的是Flux模式,它定义了一个通用调度器: 然后,我用自己的有效负载类型创建一个调度程序,如下所示: 现在我有了一些动作代码,它应该分派一个带有一些附加数据的有效负载,但是< code>ActionPayload接口只允许< code>actionType。换句话说,这段代码: 给出编译错误,因为与接口不匹配。问题

  • 我使用的是与node.js快递4.12.3和mysql db招摇过市2.0。 我创建了以下模式- 此处删除的_at字段将为空,并且在删除记录之前不会出现在数据库中。我的基于express的nodejs服务器返回的日期如下- [{id:4,“国家”:“g”,“创建时间”:“2018-01-29T04:51:46.000Z”,“删除时间”:null},{id:5,“国家”:“gaaaf”,“创建时间”

  • 有些项目可能更倾向于使用非Spring的MVC框架。 许多团队希望仍然使用现有的技术栈,比如JSF等,这样他们掌握的技能和工具依然能发挥作用。 如果你确实不想使用Spring的Web MVC,但又希望能从Spring提供的一些解决方案中受益,那么将你所使用的框架和Spring进行集成也很容易。只需要在ContextLoaderListener中启动一个Spring的根应用上下文(root appl

  • 我看了已经问过的问题,但没有一个能够解决我的问题。 < code > https://stack overflow . com/questions/45534187/path-and-formdata-parameter-at-same-time < code > https://stack overflow . com/questions/50562971/swagger-editor-show

  • 问题内容: 我有一个JPA实体,其属性设置为 但是,当我在JBoss 6上进行部署时,该应用程序会抛出一条错误消息: 我使用Hibernate 3.5作为JPA 2.0实现。 我应该使用什么来引用外键列? 问题答案: 使用代替:

  • 样本数据 我使用AJV 6.10.0来验证我的数据,但我认为我有一个错误的模式定义。带Ajv选项: 实际上,我有6个错误,警告每个属性的其他属性 在验证allOf(姓名和电话)中的第一个对象时,验证在(地址、邮政编码、城市和州)中发现错误 如果我删除了第一个allOf对象(姓名、电话)的附加属性,在验证地址架构的过程中,验证会在(姓名和电话)上发现错误 如何解决模式定义