Skip to content

Repository files navigation

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))
}

About

Embedded, self-hosted swagger-ui for go servers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages