Swagger:Path参数问题

时间:2014-11-26 17:34:28

标签: apigee swagger

我尝试使用以下路径创建一个swagger文件:     路径:        / v1 / customers / {id} / summary:

但是我发现了以下错误:

API需要路径参数,但未定义:id 在路径▹/ v1 / customers / {id} / summary

它似乎不喜欢'id'参数。有谁能告诉我如何纠正这个问题?

如果我深入研究这一点,我会看到以下内容:

Details
 Object
 swaggerError: Object
 errors: Array [1]
 0: Object
code:  "MISSING_API_PATH_PARAMETER"
message:  "API requires path parameter but it is not defined: id"
data:  "/v1/customers/{id}/summary"
 path: Array [2]
 warnings: Array [0]

1 个答案:

答案 0 :(得分:82)

基本上,您通过使用路径模板来声明其中包含路径参数的路径。在这种情况下,{id}声明了一个名为id的路径参数。

当您声明这样的路径时,这意味着您必须将该路径参数声明为操作的一部分。

看看这个YAML示例:

  /pets/{id}:
    get:
      description: Returns a user based on a single ID, if the user does not have access to the pet
      operationId: findPetById
      produces:
        - application/json
        - application/xml
        - text/xml
        - text/html
      parameters:
        - name: id
          in: path
          description: ID of pet to fetch
          required: true
          type: integer
          format: int64
      responses:
        '200':
          description: pet response
          schema:
            $ref: '#/definitions/pet'
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/errorModel'

您可以在路径中看到{id}和相应的id参数定义。没有它,规范就不会有效。