swaggerui
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.
Install
go get github.com/ruko1202/swaggerui
Development
Update embedded Swagger UI assets:
make update-assets
Example usage
Single spec
package 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))
}
Multiple specs
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))
}