https://github.com/mvrilo/go-redoc
go-redoc is an embedded OpenAPI/Swagger documentation ui for Go using ReDoc
https://github.com/mvrilo/go-redoc
documentation echo fiber gin go golang http openapi redoc swagger
Last synced: 6 months ago
JSON representation
go-redoc is an embedded OpenAPI/Swagger documentation ui for Go using ReDoc
- Host: GitHub
- URL: https://github.com/mvrilo/go-redoc
- Owner: mvrilo
- License: mit
- Created: 2021-02-07T20:10:45.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-09T15:16:14.000Z (8 months ago)
- Last Synced: 2025-04-04T05:02:01.335Z (6 months ago)
- Topics: documentation, echo, fiber, gin, go, golang, http, openapi, redoc, swagger
- Language: Go
- Homepage:
- Size: 969 KB
- Stars: 85
- Watchers: 3
- Forks: 30
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - go-redoc - Embedded OpenAPI/Swagger documentation ui for Go using [ReDoc](https://redocly.com/). (Third-party APIs / Utility/Miscellaneous)
- awesome-go - mvrilo/go-redoc - redoc is an embedded OpenAPI/Swagger documentation ui for Go using ReDoc ☆`89` (Third-party APIs / Utility/Miscellaneous)
- awesome-go - mvrilo/go-redoc - redoc is an embedded OpenAPI/Swagger documentation ui for Go using ReDoc ☆`85` (Third-party APIs / Utility/Miscellaneous)
README
# go-redoc
[](https://godoc.org/github.com/mvrilo/go-redoc)
[](https://goreportcard.com/report/github.com/mvrilo/go-redoc?_=1)`go-redoc` is an embedded OpenAPI documentation ui for Go using [ReDoc](https://github.com/ReDocly/redoc) and Go's [1.16+'s embed package](https://golang.org/pkg/embed/), with middleware implementations for: `net/http`, `gin`, `fiber`, `echo`, and `iris`.
The template is based on the ReDoc's [bundle template](https://github.com/ReDocly/redoc/blob/master/cli/template.hbs) 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](_examples/gen) for using code generation with swag.
## Usage
```go
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`
```go
import (
"net/http"
"github.com/mvrilo/go-redoc"
)...
http.ListenAndServe(address, doc.Handler())
```- `gin`
```go
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`
```go
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`
```go
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`
```go
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](/_examples)