Documentation ¶
Overview ¶
Package api provides a webserver to interact with your Gobot program over the network.
Example:
package main import ( "fmt" "gobot.io/x/gobot" "gobot.io/x/gobot/api" ) func main() { gbot := gobot.NewMaster() // Starts the API server on default port 3000 api.NewAPI(gbot).Start() // Accessible via http://localhost:3000/api/commands/say_hello gbot.AddCommand("say_hello", func(params map[string]interface{}) interface{} { return "Master says hello!" }) hello := gbot.AddRobot(gobot.NewRobot("Eve")) // Accessible via http://localhost:3000/api/robots/Eve/commands/say_hello hello.AddCommand("say_hello", func(params map[string]interface{}) interface{} { return fmt.Sprintf("%v says hello!", hello.Name) }) gbot.Start() }
It follows Common Protocol for Programming Physical Input and Output (CPPP-IO) spec: https://gobot.io/x/cppp-io
Index ¶
- func AllowRequestsFrom(allowedOrigins ...string) http.HandlerFunc
- func BasicAuth(username, password string) http.HandlerFunc
- type API
- func (a *API) AddC3PIORoutes()
- func (a *API) AddHandler(f func(http.ResponseWriter, *http.Request))
- func (a *API) AddRobeauxRoutes()
- func (a *API) Debug()
- func (a *API) Delete(path string, f func(http.ResponseWriter, *http.Request))
- func (a *API) Get(path string, f func(http.ResponseWriter, *http.Request))
- func (a *API) Head(path string, f func(http.ResponseWriter, *http.Request))
- func (a *API) Options(path string, f func(http.ResponseWriter, *http.Request))
- func (a *API) Post(path string, f func(http.ResponseWriter, *http.Request))
- func (a *API) Put(path string, f func(http.ResponseWriter, *http.Request))
- func (a *API) ServeHTTP(res http.ResponseWriter, req *http.Request)
- func (a *API) Start()
- func (a *API) StartWithoutDefaults()
- type CORS
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AllowRequestsFrom ¶
func AllowRequestsFrom(allowedOrigins ...string) http.HandlerFunc
AllowRequestsFrom returns handler to verify that requests come from allowedOrigins
func BasicAuth ¶
func BasicAuth(username, password string) http.HandlerFunc
BasicAuth returns basic auth handler.
Types ¶
type API ¶
type API struct { Host string Port string Cert string Key string // contains filtered or unexported fields }
API represents an API server
func (*API) AddC3PIORoutes ¶ added in v1.12.0
func (a *API) AddC3PIORoutes()
AddC3PIORoutes adds all of the standard C3PIO routes to the API. For more information, please see: http://cppp.io/
func (*API) AddHandler ¶
func (a *API) AddHandler(f func(http.ResponseWriter, *http.Request))
AddHandler appends handler to api handlers
func (*API) AddRobeauxRoutes ¶ added in v1.12.0
func (a *API) AddRobeauxRoutes()
AddRobeauxRoutes adds all of the robeaux web interface routes to the API. The Robeaux web interface requires the C3PIO API, so it is also activated when you call this method.
func (*API) ServeHTTP ¶
func (a *API) ServeHTTP(res http.ResponseWriter, req *http.Request)
ServeHTTP calls api handlers and then serves request using api router
func (*API) Start ¶
func (a *API) Start()
Start initializes the api by setting up Robeaux web interface.
func (*API) StartWithoutDefaults ¶ added in v1.12.0
func (a *API) StartWithoutDefaults()
StartWithoutDefaults initializes the api without setting up the default routes. Good for custom web interfaces.
type CORS ¶
type CORS struct { AllowOrigins []string AllowHeaders []string AllowMethods []string ContentType string // contains filtered or unexported fields }
CORS represents CORS configuration
func (*CORS) AllowedHeaders ¶
AllowedHeaders returns allowed headers in a string
func (*CORS) AllowedMethods ¶
AllowedMethods returns allowed http methods in a string