🔐 feat: add JWT authentication support to Swagger UI
- Added ApiKeyAuth security definition for JWT Bearer token authentication - Configured security scheme with Authorization header and Bearer token format - Added @Security annotations to greet endpoints (v1 GET, v2 POST) for optional authentication - Updated Swagger documentation to show authentication requirements - Maintained backward compatibility - authentication remains optional for greet endpoints Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -15,6 +15,11 @@
|
|||||||
// @host localhost:8080
|
// @host localhost:8080
|
||||||
// @BasePath /api
|
// @BasePath /api
|
||||||
// @schemes http https
|
// @schemes http https
|
||||||
|
//
|
||||||
|
// @securityDefinitions.apikey ApiKeyAuth
|
||||||
|
// @in header
|
||||||
|
// @name Authorization
|
||||||
|
// @description JWT authentication using Bearer token. Format: Bearer <token>
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ func (h *apiV1GreetHandler) RegisterRoutes(router chi.Router) {
|
|||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Success 200 {object} GreetResponse "Successful response"
|
// @Success 200 {object} GreetResponse "Successful response"
|
||||||
|
// @Security ApiKeyAuth
|
||||||
// @Router /v1/greet [get]
|
// @Router /v1/greet [get]
|
||||||
func (h *apiV1GreetHandler) handleGreetQuery(w http.ResponseWriter, r *http.Request) {
|
func (h *apiV1GreetHandler) handleGreetQuery(w http.ResponseWriter, r *http.Request) {
|
||||||
name := r.URL.Query().Get("name")
|
name := r.URL.Query().Get("name")
|
||||||
@@ -104,6 +105,7 @@ func (h *apiV1GreetHandler) handleGreetQuery(w http.ResponseWriter, r *http.Requ
|
|||||||
// @Param name path string true "Name to greet"
|
// @Param name path string true "Name to greet"
|
||||||
// @Success 200 {object} GreetResponse "Successful response"
|
// @Success 200 {object} GreetResponse "Successful response"
|
||||||
// @Failure 400 {object} ErrorResponse "Invalid name parameter"
|
// @Failure 400 {object} ErrorResponse "Invalid name parameter"
|
||||||
|
// @Security ApiKeyAuth
|
||||||
// @Router /v1/greet/{name} [get]
|
// @Router /v1/greet/{name} [get]
|
||||||
func (h *apiV1GreetHandler) handleGreetPath(w http.ResponseWriter, r *http.Request) {
|
func (h *apiV1GreetHandler) handleGreetPath(w http.ResponseWriter, r *http.Request) {
|
||||||
name := chi.URLParam(r, "name")
|
name := chi.URLParam(r, "name")
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ type greetResponse struct {
|
|||||||
// @Param request body GreetRequest true "Greeting request"
|
// @Param request body GreetRequest true "Greeting request"
|
||||||
// @Success 200 {object} GreetResponseV2 "Successful response"
|
// @Success 200 {object} GreetResponseV2 "Successful response"
|
||||||
// @Failure 400 {object} ValidationError "Validation error"
|
// @Failure 400 {object} ValidationError "Validation error"
|
||||||
|
// @Security ApiKeyAuth
|
||||||
// @Router /v2/greet [post]
|
// @Router /v2/greet [post]
|
||||||
func (h *apiV2GreetHandler) handleGreetPost(w http.ResponseWriter, r *http.Request) {
|
func (h *apiV2GreetHandler) handleGreetPost(w http.ResponseWriter, r *http.Request) {
|
||||||
// Read request body
|
// Read request body
|
||||||
|
|||||||
Reference in New Issue
Block a user