J'utilise swaggo ( https://github.com/swaggo/swag ) pour auto -créer une spécification swagger fonctionnelle pour mon API.
La spécification swagger me permet d'exécuter tous mes points de terminaison d'API et de recevoir des réponses.
J'ai ensuite ajouté l'authentification JWT à tous mes points de terminaison. Maintenant, je ne peux pas utiliser la spécification swagger pour exécuter des points de terminaison, car elle échoue toujours à l'authentification.
Quelles annotations dois-je ajouter à chaque point de terminaison, qui configureront la spécification Swagger pour permettre à un JWT d'être passé?
J'ai lu le fichier README à l'adresse https://github.com/swaggo/swag et Google a effectué une recherche, en vain.
4 Réponses :
Il semble que ces commentaires ajoutés à chaque point de terminaison ont fait l'affaire ...
// @securityDefinitions.apikey ApiKeyAuth
Ce commentaire a également été ajouté à notre fichier main.go
// @Security ApiKeyAuth // @param Authorization header string true "Authorization"
L'ajout d'un paramètre // @ ne va-t-il pas à l'encontre du but de l'annotation dans le fichier main.go? Je veux dire que l'ajouter en tant que @param, c'est comme dire, hé, j'ai besoin de cela comme en-tête pour ce point de terminaison explicitement
Il semble que le middleware JWT que vous avez ajouté sera invoqué avant le transfert de swaaggo / swag. Pouvez-vous publier vos paramètres de routage?
Vous en aurez besoin dans main.go (cela enverra un jeton au format dans votre en-tête: " YourTokenName
: token
"):
// @Security <YourTypeOfKey>
// @Param Authorization header string true "Insérez votre jeton d'accès" par défaut (Bearer
Ajoutez ce paramètre à l'en-tête de chaque point de terminaison dans swagger v2.0
Dans la version 3.0, nous avons un accès direct aux jetons du porteur.