go-openapi-ui
is an embedded OpenAPI documentation ui for Go using OpenAPI-UI and Go's 1.17+'s embed package, with middleware implementations for: net/http
, gin
, fiber
, and echo
.
The template is based on the OpenAPI-UI bundle.js with the script already placed in the html instead of depending on a CDN.
This package does not generate openapi spec file. Check this example for using code generation with swag.
import "github.com/openapi-ui/go-openapi-ui/pkg/doc" ... doc := doc.Doc{ Title: "Example API", Description: "Example API Description", SpecFile: "./openapi.json", // "./openapi.yaml" SpecPath: "/openapi.json", // "/openapi.yaml" DocsPath: "/docs", Theme: "light", // default is light, support light or dark }
net/http
import ( "net/http" "github.com/openapi-ui/go-openapi-ui/pkg/doc" ) ... http.ListenAndServe(address, doc.Handler())
gin
import ( "github.com/gin-gonic/gin" "github.com/openapi-ui/go-openapi-ui/pkg/doc" ginopenapiui "github.com/openapi-ui/go-openapi-ui/pkg/middleware/gin" ) ... r := gin.New() r.Use(ginopenapiui.New(doc))
echo
import ( "github.com/labstack/echo/v4" "github.com/openapi-ui/go-openapi-ui/pkg/doc" echoopenapiui "github.com/openapi-ui/go-openapi-ui/pkg/middleware/echo" ) ... r := echo.New() r.Use(echoopenapiui.New(doc))
fiber
import ( "github.com/gofiber/fiber/v2" "github.com/openapi-ui/go-openapi-ui/pkg/doc" fiberopenapiui "github.com/openapi-ui/go-openapi-ui/pkg/middleware/fiber" ) ... r := fiber.New() r.Use(fiberopenapiui.New(doc))
See examples