redoc

package module
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 8, 2022 License: MIT Imports: 7 Imported by: 0

README

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.

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",
}
  • 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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrSpecNotFound = errors.New("spec not found")

ErrSpecNotFound error for when spec file not found.

View Source
var HTML string

HTML represents the redoc index.html page

View Source
var JavaScript string

JavaScript represents the redoc standalone javascript

Functions

This section is empty.

Types

type Redoc

type Redoc struct {
	// <title> HTML tag.
	Title string `json:"title" yaml:"title"`
	// Meta description.
	Description string `json:"description" yaml:"description"`
	// Represents the URL path in case you use the Redoc.Handler function.
	DocsPath string `json:"docsPath" yaml:"docsPath"`
	// Represents the URL where the openapi.yaml/json will be exposed(as static file
	// in case the relative path doesn't works).
	SpecPath    string `json:"specPath" yaml:"specPath"`
	SpecFile    string `json:"specFile" yaml:"specFile"`
	FaviconPath string `json:"faviconPath" yaml:"faviconPath"`
}

Redoc configuration.

func (*Redoc) Body

func (r *Redoc) Body() ([]byte, error)

Body returns the final html with the js in the body.

func (*Redoc) Handler

func (r *Redoc) Handler() http.HandlerFunc

Handler sets some defaults and returns a HandlerFunc.

Directories

Path Synopsis
_examples
gin

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL