Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 2 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 3 years ago)
- Default Branch: master
- Last Pushed: 2024-05-01T16:10:11.000Z (5 months ago)
- Last Synced: 2024-06-22T14:08:45.528Z (3 months ago)
- Topics: documentation, echo, fiber, gin, go, golang, http, openapi, redoc, swagger
- Language: Go
- Homepage:
- Size: 941 KB
- Stars: 66
- Watchers: 4
- Forks: 28
- Open Issues: 4
-
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)
README
# go-redoc
[![GoDoc](https://godoc.org/github.com/mvrilo/go-redoc?status.svg)](https://godoc.org/github.com/mvrilo/go-redoc)
[![Go Report Card](https://goreportcard.com/badge/github.com/mvrilo/go-redoc?_=1)](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`, and `echo`.
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))
```See [examples](/_examples)