Skip to content
Snippets Groups Projects
configure_cocsn.go 2.68 KiB
Newer Older
  • Learn to ignore specific revisions
  • Manuel Kieweg's avatar
    Manuel Kieweg committed
    // This file is safe to edit. Once it exists it will not be overwritten
    
    package restapi
    
    import (
    	"crypto/tls"
    	"net/http"
    
    	"github.com/go-openapi/errors"
    	"github.com/go-openapi/runtime"
    	"github.com/go-openapi/runtime/middleware"
    
    	"code.fbi.h-da.de/cocsn/cocsn-api/api/restapi/operations"
    	"code.fbi.h-da.de/cocsn/cocsn-api/api/restapi/operations/interface_operations"
    )
    
    //go:generate swagger generate server --target ../../generated --name Cocsn --spec ../../cocsn-v0.0.1.yml --principal interface{}
    
    func configureFlags(api *operations.CocsnAPI) {
    	// api.CommandLineOptionsGroups = []swag.CommandLineOptionsGroup{ ... }
    }
    
    func configureAPI(api *operations.CocsnAPI) http.Handler {
    	// configure the api here
    	api.ServeError = errors.ServeError
    
    	// Set your custom logger if needed. Default one is log.Printf
    	// Expected interface func(string, ...interface{})
    	//
    	// Example:
    	// api.Logger = log.Printf
    
    	api.UseSwaggerUI()
    	// To continue using redoc as your UI, uncomment the following line
    	// api.UseRedoc()
    
    	api.JSONConsumer = runtime.JSONConsumer()
    
    	api.JSONProducer = runtime.JSONProducer()
    
    	if api.InterfaceOperationsGetInterfacesHandler == nil {
    		api.InterfaceOperationsGetInterfacesHandler = interface_operations.GetInterfacesHandlerFunc(func(params interface_operations.GetInterfacesParams) middleware.Responder {
    			return middleware.NotImplemented("operation interface_operations.GetInterfaces has not yet been implemented")
    		})
    	}
    
    	api.PreServerShutdown = func() {}
    
    	api.ServerShutdown = func() {}
    
    	return setupGlobalMiddleware(api.Serve(setupMiddlewares))
    }
    
    // The TLS configuration before HTTPS server starts.
    func configureTLS(tlsConfig *tls.Config) {
    	// Make all necessary changes to the TLS configuration here.
    }
    
    // As soon as server is initialized but not run yet, this function will be called.
    // If you need to modify a config, store server instance to stop it individually later, this is the place.
    // This function can be called multiple times, depending on the number of serving schemes.
    // scheme value will be set accordingly: "http", "https" or "unix"
    func configureServer(s *http.Server, scheme, addr string) {
    }
    
    // The middleware configuration is for the handler executors. These do not apply to the swagger.json document.
    // The middleware executes after routing but before authentication, binding and validation
    func setupMiddlewares(handler http.Handler) http.Handler {
    	return handler
    }
    
    // The middleware configuration happens before anything, this middleware also applies to serving the swagger.json document.
    // So this is a good place to plug in a panic handling middleware, logging and metrics
    func setupGlobalMiddleware(handler http.Handler) http.Handler {
    	return handler
    }