Dans OpenAPI (Swagger) 2.0, nous pouvions définir des paramètres d'en-tête comme ceci:
paths:
/post:
post:
parameters:
- in: header
name: X-username
Mais dans OpenAPI 3.0.0, les paramètres sont remplacés par des corps de demande, et je ne trouve pas de moyen de définir les paramètres d'en-tête, qui seraient en outre utilisés pour l'authentification.
Quelle est la bonne façon de définir les en-têtes de demande dans OpenAPI 3.0.0?
Dans OpenAPI 3.0, les paramètres d'en-tête sont définis de la même manière que dans OpenAPI 2.0, sauf que type
a été remplacé par schema
:
paths:
/post:
post:
parameters:
- in: header
name: X-username
schema:
type: string
En cas de doute, consultez le guide Describing Parameters .
Mais dans Swagger 3.0.0, les paramètres sont remplacés par des corps de requête.
Cela n'est vrai que pour les paramètres de forme et de corps. Les autres types de paramètres (chemin, requête, en-tête) sont toujours définis comme parameters
.
définir des paramètres d'en-tête, qui seraient en outre utilisés pour l'authentification.
Une meilleure façon de définir les paramètres liés à l'authentification consiste à utiliser securitySchemes
plutôt que de définir ces paramètres explicitement dans parameters
. Des schémas de sécurité sont utilisés pour des paramètres tels que les clés API, l'ID d'application/secret, etc. Dans votre cas:
components:
securitySchemes:
usernameHeader:
type: apiKey
in: header
name: X-Username
paths:
/post:
post:
security:
- usernameHeader: []
...