arbor
– import “github.com/arbor-dev/arbor”
Usage
func Boot
func Boot(routes RouteCollection, port uint16)
Boot is a standard server CLI
Provide a set of routes to serve and a port to serve on.
Usage: executable [-r | –register-client client_name] [-c |
–check-registration token] [-u | –unsecured] |
-r | --register-client client_name
registers a client, generates a token
-c | --check-registration token
checks if a token is valid and returns name of client
-u | --unsecured
runs groot without the security layer
without args
runs groot with the security layer
It will start the arbor instance, parsing the command arguments and execute the behavior.
func CheckRegistration
func CheckRegistration(token string)
CheckRegistration allows you to check what client was assigned to a particular token
func DELETE
func DELETE(w http.ResponseWriter, url string, format string, token string, r *http.Request)
DELETE provides a proxy DELETE request allowing authorized clients to make DELETE requests of the microservices
Pass the http Request from the client and the ResponseWriter it expects.
Pass the target url of the backend service (not the url the client called).
Pass the format of the service.
Pass a authorization token (optional).
Will call the service and return the result to the client.
func GET
func GET(w http.ResponseWriter, url string, format string, token string, r *http.Request)
GET provides a proxy GET request allowing authorized clients to make GET requests of the microservices
Pass the http Request from the client and the ResponseWriter it expects.
Pass the target url of the backend service (not the url the client called).
Pass the format of the service.
Pass a authorization token (optional).
Will call the service and return the result to the client.
func PATCH
func PATCH(w http.ResponseWriter, url string, format string, token string, r *http.Request)
PATCH provides a proxy PATCH request allowing authorized clients to make PATHC requests of the microservices
Pass the http Request from the client and the ResponseWriter it expects.
Pass the target url of the backend service (not the url the client called).
Pass the format of the service.
Pass a authorization token (optional).
Will call the service and return the result to the client.
func POST
func POST(w http.ResponseWriter, url string, format string, token string, r *http.Request)
POST provides a proxy POST request allowing authorized clients to make POST requests of the microservices
Pass the http Request from the client and the ResponseWriter it expects.
Pass the target url of the backend service (not the url the client called).
Pass the format of the service.
Pass a authorization token (optional).
Will call the service and return the result to the client.
func PUT
func PUT(w http.ResponseWriter, url string, format string, token string, r *http.Request)
PUT provides a proxy PUT request allowing authorized clients to make PUT requests of the microservices
Pass the http Request from the client and the ResponseWriter it expects.
Pass the target url of the backend service (not the url the client called).
Pass the format of the service.
Pass a authorization token (optional).
Will call the service and return the result to the client.
func RegisterClient
func RegisterClient(name string)
RegisterClient will generate a access token for a client
Currently uses a db of client names.
func StartServer
func StartServer(routes RouteCollection, port uint16)
StartServer starts a secured arbor server (Token required for access)
Provide a set of routes to serve and a port to serve on.
func StartUnsecuredServer
func StartUnsecuredServer(routes RouteCollection, port uint16)
StartUnsecuredServer starts an unsecured arbor server (Token required for access)
Provide a set of routes to server and a port to serve on/
type Route
type Route struct {
Name string `json:"Name"`
Method string `json:"Method"`
Pattern string `json:"Pattern"`
HandlerFunc http.HandlerFunc `json:"Handler"`
}
Route is a struct that defines a route for a microservice
Name: Name of the route.
Method: The type of request (GET, POST, DELETE, etc.).
Pattern: The exposed url pattern for clients to hit, allows for url encoded variables to be specified with {VARIABLE}.
HandlerFunc: The function to handle the request, this basicically should just be the proxy call, but it allows you to specify more specific things.
type RouteCollection
type RouteCollection []Route
RouteCollection is a slice of routes that is used to represent a service (may change name here)
Usage: The recomendation is to create a RouteCollection variable for all of you services and for each service create a specific one then in a registration function append all the service collections into the single master collection.