mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
Middleware upgrade (#554)
* Adds root level middleware * Added todo * Better way for extensions to be added. * Bad conflict merge?
This commit is contained in:
40
fnext/setup.go
Normal file
40
fnext/setup.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package fnext
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/fnproject/fn/api/models"
|
||||
)
|
||||
|
||||
type Extension interface {
|
||||
Name() string
|
||||
Setup(s ExtServer) error
|
||||
}
|
||||
|
||||
// NOTE: ExtServer limits what the extension should do and prevents dependency loop
|
||||
type ExtServer interface {
|
||||
AddAppListener(listener AppListener)
|
||||
AddCallListener(listener CallListener)
|
||||
|
||||
// AddAPIMiddleware add middleware
|
||||
AddAPIMiddleware(m Middleware)
|
||||
// AddAPIMiddlewareFunc add middlewarefunc
|
||||
AddAPIMiddlewareFunc(m MiddlewareFunc)
|
||||
// AddRootMiddleware add middleware add middleware for end user applications
|
||||
AddRootMiddleware(m Middleware)
|
||||
// AddRootMiddlewareFunc add middleware for end user applications
|
||||
AddRootMiddlewareFunc(m MiddlewareFunc)
|
||||
|
||||
// AddEndpoint adds an endpoint to /v1/x
|
||||
AddEndpoint(method, path string, handler ApiHandler)
|
||||
// AddEndpoint adds an endpoint to /v1/x
|
||||
AddEndpointFunc(method, path string, handler func(w http.ResponseWriter, r *http.Request))
|
||||
// AddAppEndpoint adds an endpoints to /v1/apps/:app/x
|
||||
AddAppEndpoint(method, path string, handler ApiAppHandler)
|
||||
// AddAppEndpoint adds an endpoints to /v1/apps/:app/x
|
||||
AddAppEndpointFunc(method, path string, handler func(w http.ResponseWriter, r *http.Request, app *models.App))
|
||||
// AddRouteEndpoint adds an endpoints to /v1/apps/:app/routes/:route/x
|
||||
AddRouteEndpoint(method, path string, handler ApiRouteHandler)
|
||||
// AddRouteEndpoint adds an endpoints to /v1/apps/:app/routes/:route/x
|
||||
AddRouteEndpointFunc(method, path string, handler func(w http.ResponseWriter, r *http.Request, app *models.App, route *models.Route))
|
||||
}
|
||||
Reference in New Issue
Block a user