mvrilo / go-redoc

go-redoc is an embedded OpenAPI/Swagger documentation ui for Go using ReDoc
MIT License
74 stars 28 forks source link
documentation echo fiber gin go golang http openapi redoc swagger

go-redoc

GoDoc Go Report Card

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.

Usage

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",
}
import (
    "net/http"
    "github.com/mvrilo/go-redoc"
)

...

http.ListenAndServe(address, doc.Handler())
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))
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))
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