Fiber для автоматического создания документации RESTful API с помощью Swagger на Go

Как использовать Fiber

  1. Напишите комментарии к исходному коду вашего API , инструкция

2. Загрузите Swag для Go, используя команду:

go get -u github.com/swaggo/swag/cmd/swag

3. Запустите Swag в корневой папке вашего проекта Go, которая содержит файл main.go, Swag проанализирует комментарии и сгенерирует необходимые файлы (папка docs и docs/doc.go)

Команда:

swag init

4. Загрузите swagger, используя:

go get -u github.com/gofiber/swagger

И импортируйте в свой код следующее:

import "github.com/gofiber/swagger" // swagger handler

Полный пример кода:

package main

import (
	"github.com/gofiber/swagger"
	"github.com/gofiber/fiber/v2"

	// docs are generated by Swag CLI, you have to import them.
	// replace with your own docs folder, usually "github.com/username/reponame/docs"
	_ "github.com/gofiber/swagger/example/docs"
)

// @title Fiber Example API
// @version 1.0
// @description This is a sample swagger for Fiber
// @termsOfService http://swagger.io/terms/
// @contact.name API Support
// @contact.email fiber@swagger.io
// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
// @host localhost:8080
// @BasePath /
func main() {
	app := fiber.New()

	app.Get("/swagger/*", swagger.HandlerDefault) // default

	app.Get("/swagger/*", swagger.New(swagger.Config{ // custom
		URL: "http://example.com/doc.json",
		DeepLinking: false,
		// Expand ("list") or Collapse ("none") tag groups by default
		DocExpansion: "none",
		// Prefill OAuth ClientId on Authorize popup
		OAuth: &swagger.OAuthConfig{
			AppName:  "OAuth Provider",
			ClientId: "21bb4edc-05a7-4afc-86f1-2e151e4ba6e2",
		},
		// Ability to change OAuth2 redirect uri location
		OAuth2RedirectUrl: "http://localhost:8080/swagger/oauth2-redirect.html",
	}))

	app.Listen(":8080")
}

5. Запустите его и откройте браузер по адресу http://localhost:8080/swagger, вы увидите документацию Swagger 2.0 Api.

Исходный код: https://github.com/gofiber/swagger?ref=golangexample.com

Ответить