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, echo, and iris.
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))iris
import (
"github.com/kataras/iris/v12"
"github.com/mvrilo/go-redoc"
irisdoc "github.com/mvrilo/go-redoc/iris"
)
...
app := iris.New()
app.Use(irisdoc.New(doc))See examples