summaryrefslogtreecommitdiff
path: root/vendor/github.com/go-openapi/runtime/middleware/spec.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-openapi/runtime/middleware/spec.go')
-rw-r--r--vendor/github.com/go-openapi/runtime/middleware/spec.go102
1 files changed, 0 insertions, 102 deletions
diff --git a/vendor/github.com/go-openapi/runtime/middleware/spec.go b/vendor/github.com/go-openapi/runtime/middleware/spec.go
deleted file mode 100644
index 87e17e342..000000000
--- a/vendor/github.com/go-openapi/runtime/middleware/spec.go
+++ /dev/null
@@ -1,102 +0,0 @@
-// Copyright 2015 go-swagger maintainers
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package middleware
-
-import (
- "net/http"
- "path"
-)
-
-const (
- contentTypeHeader = "Content-Type"
- applicationJSON = "application/json"
-)
-
-// SpecOption can be applied to the Spec serving middleware
-type SpecOption func(*specOptions)
-
-var defaultSpecOptions = specOptions{
- Path: "",
- Document: "swagger.json",
-}
-
-type specOptions struct {
- Path string
- Document string
-}
-
-func specOptionsWithDefaults(opts []SpecOption) specOptions {
- o := defaultSpecOptions
- for _, apply := range opts {
- apply(&o)
- }
-
- return o
-}
-
-// Spec creates a middleware to serve a swagger spec as a JSON document.
-//
-// This allows for altering the spec before starting the http listener.
-//
-// The basePath argument indicates the path of the spec document (defaults to "/").
-// Additional SpecOption can be used to change the name of the document (defaults to "swagger.json").
-func Spec(basePath string, b []byte, next http.Handler, opts ...SpecOption) http.Handler {
- if basePath == "" {
- basePath = "/"
- }
- o := specOptionsWithDefaults(opts)
- pth := path.Join(basePath, o.Path, o.Document)
-
- return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
- if path.Clean(r.URL.Path) == pth {
- rw.Header().Set(contentTypeHeader, applicationJSON)
- rw.WriteHeader(http.StatusOK)
- _, _ = rw.Write(b)
-
- return
- }
-
- if next != nil {
- next.ServeHTTP(rw, r)
-
- return
- }
-
- rw.Header().Set(contentTypeHeader, applicationJSON)
- rw.WriteHeader(http.StatusNotFound)
- })
-}
-
-// WithSpecPath sets the path to be joined to the base path of the Spec middleware.
-//
-// This is empty by default.
-func WithSpecPath(pth string) SpecOption {
- return func(o *specOptions) {
- o.Path = pth
- }
-}
-
-// WithSpecDocument sets the name of the JSON document served as a spec.
-//
-// By default, this is "swagger.json"
-func WithSpecDocument(doc string) SpecOption {
- return func(o *specOptions) {
- if doc == "" {
- return
- }
-
- o.Document = doc
- }
-}