web-dev-qa-db-fra.com

Swagger: problème avec le paramètre Path

J'essaie de créer un fichier swagger avec le chemin suivant: chemins:/v1/clients/{id}/résumé:

Cependant, j'obtiens l'erreur suivante immédiatement:

L'API nécessite un paramètre de chemin mais il n'est pas défini: id aux chemins ▹/v1/clients/{id}/résumé

Il ne semble pas aimer le paramètre 'id'. Quelqu'un pourrait-il me dire comment je pourrais rectifier cela?

Si j'explore cela, je vois ce qui suit:

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]
34
user2825273

Fondamentalement, vous déclarez un chemin d'accès qui contient un paramètre de chemin d'accès, à l'aide de modèles de chemin d'accès. Dans ce cas {id} déclare un paramètre de chemin appelé id.

Lorsque vous déclarez un tel chemin, cela signifie que vous devez déclarer ce paramètre de chemin dans le cadre de l'opération.

Jetez un œil à cet exemple 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'

Vous pouvez voir qu'il y a un {id} dans le chemin et une définition de paramètre id correspondante. Sans cela, la spécification ne sera pas valide.

86
Ron