forked from loafle/openapi-generator-original
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
|
|
|
|
/*
|
|
* OpenAPI Petstore
|
|
*
|
|
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
|
*
|
|
* API version: 1.0.0
|
|
*/
|
|
|
|
package petstoreserver
|
|
|
|
import (
|
|
"net/http"
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
// A Route defines the parameters for an api endpoint
|
|
type Route struct {
|
|
Method string
|
|
Pattern string
|
|
HandlerFunc http.HandlerFunc
|
|
}
|
|
|
|
// Routes is a map of defined api endpoints
|
|
type Routes map[string]Route
|
|
|
|
// Router defines the required methods for retrieving api routes
|
|
type Router interface {
|
|
Routes() Routes
|
|
}
|
|
|
|
// NewRouter creates a new router for any number of api routers
|
|
func NewRouter(routers ...Router) *mux.Router {
|
|
router := mux.NewRouter().StrictSlash(true)
|
|
for _, api := range routers {
|
|
for name, route := range api.Routes() {
|
|
var handler http.Handler = route.HandlerFunc
|
|
handler = Logger(handler, name)
|
|
|
|
router.
|
|
Methods(route.Method).
|
|
Path(route.Pattern).
|
|
Name(name).
|
|
Handler(handler)
|
|
}
|
|
}
|
|
|
|
return router
|
|
}
|