diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-02-14 00:32:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-14 00:32:26 +0100 |
commit | 1b290f995b0dec0d9ac58ddba93f8b6b24dc6d0a (patch) | |
tree | 0b60453f00a9d3eb5c7c3a2407e52c0daaf6ef6c | |
parent | 3e0475eb8891499630d0eefb9b133a1356e7abac (diff) | |
parent | 4bb55161e95d9c28928210b92b9cd2bacaa7768b (diff) | |
download | podman-1b290f995b0dec0d9ac58ddba93f8b6b24dc6d0a.tar.gz podman-1b290f995b0dec0d9ac58ddba93f8b6b24dc6d0a.tar.bz2 podman-1b290f995b0dec0d9ac58ddba93f8b6b24dc6d0a.zip |
Merge pull request #5074 from jwhonce/wip/swagger_endpoint
Add /swagger/ endpoint to serve swagger yaml to clients
-rw-r--r-- | pkg/api/server/register_swagger.go | 26 | ||||
-rw-r--r-- | pkg/api/server/server.go | 1 |
2 files changed, 27 insertions, 0 deletions
diff --git a/pkg/api/server/register_swagger.go b/pkg/api/server/register_swagger.go new file mode 100644 index 000000000..5564ec096 --- /dev/null +++ b/pkg/api/server/register_swagger.go @@ -0,0 +1,26 @@ +package server + +import ( + "net/http" + "os" + + "github.com/gorilla/mux" +) + +// DefaultPodmanSwaggerSpec provides the default path to the podman swagger spec file +const DefaultPodmanSwaggerSpec = "/usr/share/containers/podman/swagger.yaml" + +// RegisterSwaggerHandlers maps the swagger endpoint for the server +func (s *APIServer) RegisterSwaggerHandlers(r *mux.Router) error { + // This handler does _*NOT*_ provide an UI rather just a swagger spec that an UI could render + r.PathPrefix("/swagger/").HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + path := DefaultPodmanSwaggerSpec + if p, found := os.LookupEnv("PODMAN_SWAGGER_SPEC"); found { + path = p + } + w.Header().Set("Content-Type", "text/yaml") + + http.ServeFile(w, r, path) + }) + return nil +} diff --git a/pkg/api/server/server.go b/pkg/api/server/server.go index 87b11b716..2c709bc59 100644 --- a/pkg/api/server/server.go +++ b/pkg/api/server/server.go @@ -114,6 +114,7 @@ func newServer(runtime *libpod.Runtime, duration time.Duration, listener *net.Li server.registerPingHandlers, server.RegisterPluginsHandlers, server.registerPodsHandlers, + server.RegisterSwaggerHandlers, server.RegisterSwarmHandlers, server.registerSystemHandlers, server.registerVersionHandlers, |