Swagger Editor显示路径参数的“架构错误:不应该有其他属性”错误

时间:2017-08-07 14:43:16

标签: swagger swagger-2.0 swagger-editor

我正在使用http://editor.swagger.io来设计API,但我收到一条错误,我不知道该如何处理:

Schema error at paths['/employees/{employeeId}/roles'].get.parameters[0]
should NOT have additional properties
additionalProperty: type, format, name, in, description
Jump to line 24

我以类似的方式定义了其他端点,并且没有出现此错误。我想知道我是否有一些缩进或未公开引号的问题,但似乎并非如此。谷歌似乎也没有提供任何有用的结果。

swagger: "2.0"
info:
  description: Initial draft of the API specification
  version: '1.0'
  title: App 4.0 API
host: api.com
basePath: /v1
tags:
  - name: employees
    description: Employee management
schemes:
  - https
paths:
  /employees/{employeeId}/roles:
    get:
      tags:
        - employees
      summary: "Get a specific employee's roles"
      description: ''
      operationId: findEmployeeRoles
      produces:
        - application/json
      parameters:
        - name: employeeId   <====== Line 24
          in: path
          description: Id of employee whose roles we are fetching
          type: integer
          format: int64
      responses:
        '200':
          description: successful operation
          schema:
            type: array
            items:
              $ref: '#/definitions/Role'
        '403':
          description: No permission to see employee roles
        '404':
          description: EmployeeId not found

任何提示?

3 个答案:

答案 0 :(得分:26)

错误消息具有误导性。实际错误是您的路径参数缺失required: true。路径参数始终是必需的,因此请记住向其添加required: true

答案 1 :(得分:1)

有同样的问题。我不小心将Swagger 2.0Openapi 3.0.0的语法混合在一起。在Openapi 3.0.0中,定义被重新定义为组件。在online editor中,您可以点击按钮编辑> 转换为OpenAPI 3 以使用Openapi 3.0.0

详细了解组件 here

备注:

  

OAS 3是该版本的最新版本   OpenAPI规范。

答案 2 :(得分:0)

语法要求可能需要两个参数,如Helen所述required: true也是如此,type:DataType也是如此。该错误具有误导性。