Swagger:Issue with Path parameter

ApigeeSwagger

Apigee Problem Overview


I am try to create a swagger file with the following path: paths: /v1/customers/{id}/summary :

However I get the following error right off bat:

API requires path parameter but it is not defined: id at paths ▹ /v1/customers/{id}/summary

It does not seem to like the 'id' parameter. Could anybody tell me how I could rectify this?

If I drill down on this I see the following:

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]

Apigee Solutions


Solution 1 - Apigee

Basically, you're declaring a path that has a path parameter in it, by using path templates. In this case {id} declares a path parameter called id.

When you declare such a path, it means that you have to declare that path parameter as part of the operation.

Take a look at this YAML example:

  /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'

You can see there's an {id} in the path, and a corresponding id parameter definition. Without it, the spec won't be valid.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser2825273View Question on Stackoverflow
Solution 1 - ApigeeRonView Answer on Stackoverflow