Documentation ¶
Overview ¶
Show nicely (but simple) formatted HTML error pages (or respond with JSON if the appropriate `Accept` header is set)) for the http package.
We use html templates to handle simple but as informative as possible error pages.
To eliminate circular dependency in case of an error, we don't store error pages on swarm. We can't save the error pages as html files on disk, or when deploying compiled binaries they won't be found.
For this reason we resort to save the HTML error pages as strings, which then can be parsed by Go's html/template package
A simple http server interface to Swarm
Index ¶
- func GetGenericErrorPage() string
- func GetNotFoundErrorPage() string
- func ShowError(w http.ResponseWriter, r *http.Request, msg string, code int)
- func StartHttpServer(api *api.Api, config *ServerConfig)
- type ErrorParams
- type Request
- type RoundTripper
- type Server
- func (s *Server) BadRequest(w http.ResponseWriter, r *Request, reason string)
- func (s *Server) Error(w http.ResponseWriter, r *Request, err error)
- func (s *Server) HandleDelete(w http.ResponseWriter, r *Request)
- func (s *Server) HandleGetFile(w http.ResponseWriter, r *Request)
- func (s *Server) HandleGetFiles(w http.ResponseWriter, r *Request)
- func (s *Server) HandleGetList(w http.ResponseWriter, r *Request)
- func (s *Server) HandleGetRaw(w http.ResponseWriter, r *Request)
- func (s *Server) HandlePostFiles(w http.ResponseWriter, r *Request)
- func (s *Server) HandlePostRaw(w http.ResponseWriter, r *Request)
- func (s *Server) NotFound(w http.ResponseWriter, r *Request, err error)
- func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)
- type ServerConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetGenericErrorPage ¶ added in v1.7.0
func GetGenericErrorPage() string
This returns the HTML for generic errors
func GetNotFoundErrorPage ¶ added in v1.7.0
func GetNotFoundErrorPage() string
This returns the HTML for a 404 Not Found error
func ShowError ¶ added in v1.7.0
ShowError is used to show an HTML error page to a client. If there is an `Accept` header of `application/json`, JSON will be returned instead The function just takes a string message which will be displayed in the error page. The code is used to evaluate which template will be displayed (and return the correct HTTP status code)
func StartHttpServer ¶
func StartHttpServer(api *api.Api, config *ServerConfig)
starts up http server
Types ¶
type ErrorParams ¶ added in v1.7.0
type ErrorParams struct { Msg string Code int Timestamp string Details template.HTML // contains filtered or unexported fields }
parameters needed for formatting the correct HTML page
type RoundTripper ¶
type Server ¶ added in v1.5.6
type Server struct {
// contains filtered or unexported fields
}
func (*Server) BadRequest ¶ added in v1.6.0
func (s *Server) BadRequest(w http.ResponseWriter, r *Request, reason string)
func (*Server) Error ¶ added in v1.6.0
func (s *Server) Error(w http.ResponseWriter, r *Request, err error)
func (*Server) HandleDelete ¶ added in v1.6.0
func (s *Server) HandleDelete(w http.ResponseWriter, r *Request)
HandleDelete handles a DELETE request to bzz:/<manifest>/<path>, removes <path> from <manifest> and returns the resulting manifest hash as a text/plain response
func (*Server) HandleGetFile ¶ added in v1.6.0
func (s *Server) HandleGetFile(w http.ResponseWriter, r *Request)
HandleGetFile handles a GET request to bzz://<manifest>/<path> and responds with the content of the file at <path> from the given <manifest>
func (*Server) HandleGetFiles ¶ added in v1.6.0
func (s *Server) HandleGetFiles(w http.ResponseWriter, r *Request)
HandleGetFiles handles a GET request to bzz:/<manifest> with an Accept header of "application/x-tar" and returns a tar stream of all files contained in the manifest
func (*Server) HandleGetList ¶ added in v1.6.0
func (s *Server) HandleGetList(w http.ResponseWriter, r *Request)
HandleGetList handles a GET request to bzz:/<manifest>/<path> which has the "list" query parameter set to "true" and returns a list of all files contained in <manifest> under <path> grouped into common prefixes using "/" as a delimiter
func (*Server) HandleGetRaw ¶ added in v1.6.0
func (s *Server) HandleGetRaw(w http.ResponseWriter, r *Request)
HandleGetRaw handles a GET request to bzzr://<key> and responds with the raw content stored at the given storage key
func (*Server) HandlePostFiles ¶ added in v1.6.0
func (s *Server) HandlePostFiles(w http.ResponseWriter, r *Request)
HandlePostFiles handles a POST request (or deprecated PUT request) to bzz:/<hash>/<path> which contains either a single file or multiple files (either a tar archive or multipart form), adds those files either to an existing manifest or to a new manifest under <path> and returns the resulting manifest hash as a text/plain response
func (*Server) HandlePostRaw ¶ added in v1.6.0
func (s *Server) HandlePostRaw(w http.ResponseWriter, r *Request)
HandlePostRaw handles a POST request to a raw bzzr:/ URI, stores the request body in swarm and returns the resulting storage key as a text/plain response
type ServerConfig ¶ added in v1.6.0
ServerConfig is the basic configuration needed for the HTTP server and also includes CORS settings.