Skip to content

serve swagger ui with go-swagger generated api servers

License

Notifications You must be signed in to change notification settings

wgfm/swagserver

 
 

Repository files navigation

swagserver

Go Report Card

A simple middleware that serves swagger ui using a valid Open API json specification document.

The middleware func is typed using the common convention func(next http.Handler) http.Handler - which should make it pluggable into most Go web frameworks.

Setup and usage

go get github.com/syllabix/swagserver

Initialize an instance of swag server middleware with various options.

func setupGlobalMiddleware(handler http.Handler) http.Handler {
	swagserve := swagserver.New(
		option.Path("/internal/apidocs"),
		option.SwaggerSpecURL("/swagger.json"),
		option.Theme(theme.Material),
	)
	return swagserve(handler)
}

Options

Path - the the url path swagger ui should be served at

Disable - swagger ui will not be rendered

SwaggerSpecURL - the url where the swagger json specification is served from

Theme - the theme the ui should by displayed in

Themes

Themes, with exclusion of the default, are all sourced from swagger-ui-themes.

Development

To remove the need to keep static web ui files in the repository, this project uses statik to embed the swagger-ui-dist npm package into the project source.

A simple build script is included in the repository that can be used to resolve swagger-ui-dist from npm, copy and embed necessary files from the package. You will need to be running on a mac (macOS style sed is used) and npm installed in order for it to run.

About

serve swagger ui with go-swagger generated api servers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 83.6%
  • Shell 16.4%