大招:requestBody不允许

我试图用swagger定义一个post端点,但是它不允许requestBody参数:

  /names/{roster}: get: #... post: x-swagger-router-controller: names description: Adds or removes name(s) operationId: manageNames parameters: - name: roster in: path description: the roster to use type: string required: true requestBody: content: 'application/json': schema: $ref: '#/definitions/ManageNamesRequest' 

当我运行npm start ,我得到这个:

 API Errors: #/paths/~1names~1{roster}/post: Additional properties not allowed: requestBody 1 error and 0 warnings 

我的规范有什么问题?

您可能正在混合使用OpenAPI / Swagger 2.0和OpenAPI 3.0语法。 您的规范似乎是2.0,但requestBody关键字是3.0function。 在2.0中,请求主体被定义为一个主体参数:

 paths: /names/{roster}: post: produces: - application/json ... parameters: - ... - in: body name: body required: true schema: $ref: '#/definitions/ManageNamesRequest' 

更多信息: 描述请求正文