Based on flowchartsman/swaggerui
Embedded, self-hosted Swagger Ui for go servers
This module provides swaggerui.Handler, which you can use to serve an embedded copy of Swagger UI as well as an embedded specification for your API.
go get github.com/ruko1202/swaggeruiUpdate embedded Swagger UI assets:
make update-assetspackage main
import (
_ "embed"
"log"
"net/http"
"github.com/ruko1202/swaggerui"
)
//go:embed swagger.json
var spec []byte
func main() {
log.SetFlags(0)
http.Handle("/swagger/", http.StripPrefix("/swagger", swaggerui.Handler(spec)))
log.Println("serving on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}package main
import (
_ "embed"
"log"
"net/http"
"github.com/ruko1202/swaggerui"
)
//go:embed public-swagger.json
var publicSpec []byte
//go:embed admin-swagger.json
var adminSpec []byte
func main() {
log.SetFlags(0)
http.Handle("/swagger/", http.StripPrefix("/swagger", swaggerui.HandlerWithSpecs(
[]swaggerui.Spec{
{Name: "Public API", Content: publicSpec},
{Name: "Admin API", Content: adminSpec},
},
swaggerui.WithPrimaryName("Public API"),
)))
log.Println("serving on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}