go-openapi-ui

module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 11, 2024 License: MIT

README

go-openapi-ui

go-openapi-ui is an embedded OpenAPI documentation ui for Go using OpenAPI-UI and Go's 1.17+'s embed package, with middleware implementations for: net/http, gin, fiber, and echo.

The template is based on the OpenAPI-UI bundle.js 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/openapi-ui/go-openapi-ui/pkg/doc"

...

doc := doc.Doc{
    Title:       "Example API",
    Description: "Example API Description",
    SpecFile:    "./openapi.json", // "./openapi.yaml"
    SpecPath:    "/openapi.json",  // "/openapi.yaml"
    DocsPath:    "/docs",
    Theme:       "light", // default is light, support light or dark
}
  • net/http
import (
	"net/http"
	"github.com/openapi-ui/go-openapi-ui/pkg/doc"
)

...

http.ListenAndServe(address, doc.Handler())
  • gin
import (
	"github.com/gin-gonic/gin"
	"github.com/openapi-ui/go-openapi-ui/pkg/doc"
	ginopenapiui "github.com/openapi-ui/go-openapi-ui/pkg/middleware/gin"
)

...

r := gin.New()
r.Use(ginopenapiui.New(doc))
  • echo
import (
	"github.com/labstack/echo/v4"
	"github.com/openapi-ui/go-openapi-ui/pkg/doc"
	echoopenapiui "github.com/openapi-ui/go-openapi-ui/pkg/middleware/echo"
)

...

r := echo.New()
r.Use(echoopenapiui.New(doc))
  • fiber
import (
	"github.com/gofiber/fiber/v2"
	"github.com/openapi-ui/go-openapi-ui/pkg/doc"
	fiberopenapiui "github.com/openapi-ui/go-openapi-ui/pkg/middleware/fiber"
)

...

r := fiber.New()
r.Use(fiberopenapiui.New(doc))

See examples

Thanks

LICENSE

MIT

Directories

Path Synopsis
_examples
gin
pkg
doc

Jump to

Keyboard shortcuts

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