go-redoc
is an embedded OpenAPI documentation ui for Go using ReDoc and Go's 1.16+'s embed package, with middleware implementations for: net/http
, gin
, fiber
, and echo
.
The template is based on the ReDoc's bundle template 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/mvrilo/go-redoc"
...
doc := redoc.Redoc{
Title: "Example API",
Description: "Example API Description",
SpecFile: "./openapi.json", // "./openapi.yaml"
SpecPath: "/openapi.json", // "/openapi.yaml"
DocsPath: "/docs",
}
net/http
import (
"net/http"
"github.com/mvrilo/go-redoc"
)
...
http.ListenAndServe(address, doc.Handler())
gin
import (
"github.com/gin-gonic/gin"
"github.com/mvrilo/go-redoc"
ginredoc "github.com/mvrilo/go-redoc/gin"
)
...
r := gin.New()
r.Use(ginredoc.New(doc))
echo
import (
"github.com/labstack/echo/v4"
"github.com/mvrilo/go-redoc"
echoredoc "github.com/mvrilo/go-redoc/echo"
)
...
r := echo.New()
r.Use(echoredoc.New(doc))
fiber
import (
"github.com/gofiber/fiber/v2"
"github.com/mvrilo/go-redoc"
fiberredoc "github.com/mvrilo/go-redoc/fiber"
)
...
r := fiber.New()
r.Use(fiberredoc.New(doc))
See examples