Documentation ¶
Overview ¶
A simple http server interface to Swarm
Index ¶
- Variables
- func Adapt(h http.Handler, adapters ...Adapter) http.Handler
- func GetRUID(ctx context.Context) string
- func GetURI(ctx context.Context) *api.URI
- func InitLoggingResponseWriter(h http.Handler) http.Handler
- func InstrumentOpenTracing(h http.Handler) http.Handler
- func ParseURI(h http.Handler) http.Handler
- func RecoverPanic(h http.Handler) http.Handler
- func SetRUID(ctx context.Context, ruid string) context.Context
- func SetRequestHost(h http.Handler) http.Handler
- func SetRequestID(h http.Handler) http.Handler
- func SetURI(ctx context.Context, uri *api.URI) context.Context
- func ShowMultipleChoices(w http.ResponseWriter, r *http.Request, list api.ManifestList)
- type Adapter
- type ResponseParams
- type RoundTripper
- type Server
- func (s *Server) HandleBzzGet(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandleDelete(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandleGet(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandleGetFeed(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandleGetFile(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandleGetList(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandlePostFeed(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandlePostFiles(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandlePostRaw(w http.ResponseWriter, r *http.Request)
- func (s *Server) HandleRootPaths(w http.ResponseWriter, r *http.Request)
- func (s *Server) ListenAndServe(addr string) error
- type TestServer
- type TestSwarmServer
Constants ¶
This section is empty.
Variables ¶
var TemplatesMap = make(map[string]*template.Template)
Functions ¶
func Adapt ¶ added in v1.0.4
Adapt chains h (main request handler) main handler to adapters (middleware handlers) Please note that the order of execution for `adapters` is FIFO (adapters[0] will be executed first)
func InitLoggingResponseWriter ¶ added in v1.0.4
func InstrumentOpenTracing ¶ added in v1.0.4
func ShowMultipleChoices ¶
func ShowMultipleChoices(w http.ResponseWriter, r *http.Request, list api.ManifestList)
ShowMultipleChoices is used when a user requests a resource in a manifest which results in ambiguous results. It returns a HTML page with clickable links of each of the entry in the manifest which fits the request URI ambiguity. For example, if the user requests bzz:/<hash>/read and that manifest contains entries "readme.md" and "readinglist.txt", a HTML page is returned with this two links. This only applies if the manifest has no default entry
Types ¶
type ResponseParams ¶
type RoundTripper ¶
type Server ¶
browser API for registering bzz url scheme handlers: https://developer.mozilla.org/en/docs/Web-based_protocol_handlers electron (chromium) api for registering bzz url scheme handlers: https://github.com/atom/electron/blob/master/docs/api/protocol.md
func (*Server) HandleBzzGet ¶ added in v1.0.4
func (s *Server) HandleBzzGet(w http.ResponseWriter, r *http.Request)
func (*Server) HandleDelete ¶
func (s *Server) HandleDelete(w http.ResponseWriter, r *http.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) HandleGet ¶
func (s *Server) HandleGet(w http.ResponseWriter, r *http.Request)
HandleGet handles a GET request to
- bzz-raw://<key> and responds with the raw content stored at the given storage key
- bzz-hash://<key> and responds with the hash of the content stored at the given storage key as a text/plain response
func (*Server) HandleGetFeed ¶ added in v1.0.6
func (s *Server) HandleGetFeed(w http.ResponseWriter, r *http.Request)
HandleGetFeed retrieves Swarm feeds updates: bzz-feed://<manifest address or ENS name> - get latest feed update, given a manifest address - or - specify user + topic (optional), subtopic name (optional) directly, without manifest: bzz-feed://?user=0x...&topic=0x...&name=subtopic name topic defaults to 0x000... if not specified. name defaults to empty string if not specified. thus, empty name and topic refers to the user's default feed.
Optional parameters: time=xx - get the latest update before time (in epoch seconds) hint.time=xx - hint the lookup algorithm looking for updates at around that time hint.level=xx - hint the lookup algorithm looking for updates at around this frequency level meta=1 - get feed metadata and status information instead of performing a feed query NOTE: meta=1 will be deprecated in the near future
func (*Server) HandleGetFile ¶
func (s *Server) HandleGetFile(w http.ResponseWriter, r *http.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) HandleGetList ¶
func (s *Server) HandleGetList(w http.ResponseWriter, r *http.Request)
HandleGetList handles a GET request to bzz-list:/<manifest>/<path> and returns a list of all files contained in <manifest> under <path> grouped into common prefixes using "/" as a delimiter
func (*Server) HandlePostFeed ¶ added in v1.0.6
func (s *Server) HandlePostFeed(w http.ResponseWriter, r *http.Request)
Handles feed manifest creation and feed updates The POST request admits a JSON structure as defined in the feeds package: `feed.updateRequestJSON` The requests can be to a) create a feed manifest, b) update a feed or c) both a+b: create a feed manifest and publish a first update
func (*Server) HandlePostFiles ¶
func (s *Server) HandlePostFiles(w http.ResponseWriter, r *http.Request)
HandlePostFiles handles a POST 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 ¶
func (s *Server) HandlePostRaw(w http.ResponseWriter, r *http.Request)
HandlePostRaw handles a POST request to a raw bzz-raw:/ URI, stores the request body in swarm and returns the resulting storage address as a text/plain response
func (*Server) HandleRootPaths ¶
func (s *Server) HandleRootPaths(w http.ResponseWriter, r *http.Request)
func (*Server) ListenAndServe ¶
type TestServer ¶ added in v1.0.6
type TestServer interface {
ServeHTTP(http.ResponseWriter, *http.Request)
}
type TestSwarmServer ¶ added in v1.0.6
type TestSwarmServer struct { *httptest.Server Hasher storage.SwarmHash FileStore *storage.FileStore CurrentTime uint64 // contains filtered or unexported fields }
func NewTestSwarmServer ¶ added in v1.0.6
func NewTestSwarmServer(t *testing.T, serverFunc func(*api.API) TestServer, resolver api.Resolver) *TestSwarmServer
func (*TestSwarmServer) Close ¶ added in v1.0.6
func (t *TestSwarmServer) Close()
func (*TestSwarmServer) Now ¶ added in v1.0.6
func (t *TestSwarmServer) Now() feed.Timestamp