httpapi

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2021 License: MIT Imports: 39 Imported by: 71

README

go-ipfs-http-api

standard-readme compliant GoDoc

IPFS CoreAPI implementation using HTTP API

This package is experimental and subject to change. If you need to depend on something less likely to change, please use go-ipfs-api. If you'd like the latest and greatest features, please use this package.

Documentation

https://godoc.org/github.com/ipfs/go-ipfs-http-api

Contribute

Feel free to join in. All welcome. Open an issue!

This repository falls under the IPFS Code of Conduct.

Want to hack on IPFS?

License

MIT

Documentation

Index

Constants

View Source
const (
	DefaultPathName = ".ipfs"
	DefaultPathRoot = "~/" + DefaultPathName
	DefaultApiFile  = "api"
	EnvDir          = "IPFS_PATH"
)

Variables

View Source
var ErrApiNotFound = errors.New("ipfs api address could not be found")

ErrApiNotFound if we fail to find a running daemon.

Functions

func ApiAddr

func ApiAddr(ipfspath string) (ma.Multiaddr, error)

ApiAddr reads api file in specified ipfs path

Types

type BlockAPI

type BlockAPI HttpApi

func (*BlockAPI) Get

func (api *BlockAPI) Get(ctx context.Context, p path.Path) (io.Reader, error)

func (*BlockAPI) Put

func (api *BlockAPI) Put(ctx context.Context, r io.Reader, opts ...caopts.BlockPutOption) (iface.BlockStat, error)

func (*BlockAPI) Rm

func (api *BlockAPI) Rm(ctx context.Context, p path.Path, opts ...caopts.BlockRmOption) error

func (*BlockAPI) Stat

func (api *BlockAPI) Stat(ctx context.Context, p path.Path) (iface.BlockStat, error)

type DhtAPI

type DhtAPI HttpApi

func (*DhtAPI) FindPeer

func (api *DhtAPI) FindPeer(ctx context.Context, p peer.ID) (peer.AddrInfo, error)

func (*DhtAPI) FindProviders

func (api *DhtAPI) FindProviders(ctx context.Context, p path.Path, opts ...caopts.DhtFindProvidersOption) (<-chan peer.AddrInfo, error)

func (*DhtAPI) Provide

func (api *DhtAPI) Provide(ctx context.Context, p path.Path, opts ...caopts.DhtProvideOption) error

type Error

type Error = cmds.Error

type HttpApi

type HttpApi struct {
	Headers http.Header
	// contains filtered or unexported fields
}

HttpApi implements github.com/ipfs/interface-go-ipfs-core/CoreAPI using IPFS HTTP API.

For interface docs see https://godoc.org/github.com/ipfs/interface-go-ipfs-core#CoreAPI

func NewApi

func NewApi(a ma.Multiaddr) (*HttpApi, error)

NewApi constructs HttpApi with specified endpoint

func NewApiWithClient

func NewApiWithClient(a ma.Multiaddr, c *http.Client) (*HttpApi, error)

NewApiWithClient constructs HttpApi with specified endpoint and custom http client

func NewLocalApi

func NewLocalApi() (*HttpApi, error)

NewLocalApi tries to construct new HttpApi instance communicating with local IPFS daemon

Daemon api address is pulled from the $IPFS_PATH/api file. If $IPFS_PATH env var is not present, it defaults to ~/.ipfs

func NewPathApi

func NewPathApi(ipfspath string) (*HttpApi, error)

NewPathApi constructs new HttpApi by pulling api address from specified ipfspath. Api file should be located at $ipfspath/api

func NewURLApiWithClient added in v0.0.2

func NewURLApiWithClient(url string, c *http.Client) (*HttpApi, error)

func (*HttpApi) Block

func (api *HttpApi) Block() iface.BlockAPI

func (*HttpApi) Dag

func (api *HttpApi) Dag() iface.APIDagService

func (*HttpApi) Dht

func (api *HttpApi) Dht() iface.DhtAPI

func (*HttpApi) Key

func (api *HttpApi) Key() iface.KeyAPI

func (*HttpApi) Name

func (api *HttpApi) Name() iface.NameAPI

func (*HttpApi) Object

func (api *HttpApi) Object() iface.ObjectAPI

func (*HttpApi) Pin

func (api *HttpApi) Pin() iface.PinAPI

func (*HttpApi) PubSub

func (api *HttpApi) PubSub() iface.PubSubAPI

func (*HttpApi) Request added in v0.0.2

func (api *HttpApi) Request(command string, args ...string) RequestBuilder

func (*HttpApi) ResolveNode

func (api *HttpApi) ResolveNode(ctx context.Context, p path.Path) (ipld.Node, error)

func (*HttpApi) ResolvePath

func (api *HttpApi) ResolvePath(ctx context.Context, p path.Path) (path.Resolved, error)

func (*HttpApi) Swarm

func (api *HttpApi) Swarm() iface.SwarmAPI

func (*HttpApi) Unixfs

func (api *HttpApi) Unixfs() iface.UnixfsAPI

func (*HttpApi) WithOptions

func (api *HttpApi) WithOptions(opts ...caopts.ApiOption) (iface.CoreAPI, error)

type HttpDagServ

type HttpDagServ httpNodeAdder

func (*HttpDagServ) Add

func (api *HttpDagServ) Add(ctx context.Context, nd format.Node) error

func (*HttpDagServ) AddMany

func (api *HttpDagServ) AddMany(ctx context.Context, nds []format.Node) error

func (*HttpDagServ) Get

func (api *HttpDagServ) Get(ctx context.Context, c cid.Cid) (format.Node, error)

func (*HttpDagServ) GetMany

func (api *HttpDagServ) GetMany(ctx context.Context, cids []cid.Cid) <-chan *format.NodeOption

func (*HttpDagServ) Pinning

func (api *HttpDagServ) Pinning() format.NodeAdder

func (*HttpDagServ) Remove

func (api *HttpDagServ) Remove(ctx context.Context, c cid.Cid) error

func (*HttpDagServ) RemoveMany

func (api *HttpDagServ) RemoveMany(ctx context.Context, cids []cid.Cid) error

type KeyAPI

type KeyAPI HttpApi

func (*KeyAPI) Generate

func (api *KeyAPI) Generate(ctx context.Context, name string, opts ...caopts.KeyGenerateOption) (iface.Key, error)

func (*KeyAPI) List

func (api *KeyAPI) List(ctx context.Context) ([]iface.Key, error)

func (*KeyAPI) Remove

func (api *KeyAPI) Remove(ctx context.Context, name string) (iface.Key, error)

func (*KeyAPI) Rename

func (api *KeyAPI) Rename(ctx context.Context, oldName string, newName string, opts ...caopts.KeyRenameOption) (iface.Key, bool, error)

func (*KeyAPI) Self

func (api *KeyAPI) Self(ctx context.Context) (iface.Key, error)

type NameAPI

type NameAPI HttpApi

func (*NameAPI) Publish

func (api *NameAPI) Publish(ctx context.Context, p path.Path, opts ...caopts.NamePublishOption) (iface.IpnsEntry, error)

func (*NameAPI) Resolve

func (api *NameAPI) Resolve(ctx context.Context, name string, opts ...caopts.NameResolveOption) (path.Path, error)

func (*NameAPI) Search

func (api *NameAPI) Search(ctx context.Context, name string, opts ...caopts.NameResolveOption) (<-chan iface.IpnsResult, error)

type ObjectAPI

type ObjectAPI HttpApi
func (api *ObjectAPI) AddLink(ctx context.Context, base path.Path, name string, child path.Path, opts ...caopts.ObjectAddLinkOption) (path.Resolved, error)

func (*ObjectAPI) AppendData

func (api *ObjectAPI) AppendData(ctx context.Context, p path.Path, r io.Reader) (path.Resolved, error)

func (*ObjectAPI) Data

func (api *ObjectAPI) Data(ctx context.Context, p path.Path) (io.Reader, error)

func (*ObjectAPI) Diff

func (api *ObjectAPI) Diff(ctx context.Context, a path.Path, b path.Path) ([]iface.ObjectChange, error)

func (*ObjectAPI) Get

func (api *ObjectAPI) Get(ctx context.Context, p path.Path) (ipld.Node, error)
func (api *ObjectAPI) Links(ctx context.Context, p path.Path) ([]*ipld.Link, error)

func (*ObjectAPI) New

func (api *ObjectAPI) New(ctx context.Context, opts ...caopts.ObjectNewOption) (ipld.Node, error)

func (*ObjectAPI) Put

func (api *ObjectAPI) Put(ctx context.Context, r io.Reader, opts ...caopts.ObjectPutOption) (path.Resolved, error)
func (api *ObjectAPI) RmLink(ctx context.Context, base path.Path, link string) (path.Resolved, error)

func (*ObjectAPI) SetData

func (api *ObjectAPI) SetData(ctx context.Context, p path.Path, r io.Reader) (path.Resolved, error)

func (*ObjectAPI) Stat

func (api *ObjectAPI) Stat(ctx context.Context, p path.Path) (*iface.ObjectStat, error)

type PinAPI

type PinAPI HttpApi

func (*PinAPI) Add

func (api *PinAPI) Add(ctx context.Context, p path.Path, opts ...caopts.PinAddOption) error

func (*PinAPI) IsPinned added in v0.0.6

func (api *PinAPI) IsPinned(ctx context.Context, p path.Path, opts ...caopts.PinIsPinnedOption) (string, bool, error)

IsPinned returns whether or not the given cid is pinned and an explanation of why its pinned

func (*PinAPI) Ls

func (api *PinAPI) Ls(ctx context.Context, opts ...caopts.PinLsOption) (<-chan iface.Pin, error)

func (*PinAPI) Rm

func (api *PinAPI) Rm(ctx context.Context, p path.Path, opts ...caopts.PinRmOption) error

func (*PinAPI) Update

func (api *PinAPI) Update(ctx context.Context, from path.Path, to path.Path, opts ...caopts.PinUpdateOption) error

func (*PinAPI) Verify

func (api *PinAPI) Verify(ctx context.Context) (<-chan iface.PinStatus, error)

type PubsubAPI

type PubsubAPI HttpApi

func (*PubsubAPI) Ls

func (api *PubsubAPI) Ls(ctx context.Context) ([]string, error)

func (*PubsubAPI) Peers

func (api *PubsubAPI) Peers(ctx context.Context, opts ...caopts.PubSubPeersOption) ([]peer.ID, error)

func (*PubsubAPI) Publish

func (api *PubsubAPI) Publish(ctx context.Context, topic string, message []byte) error

func (*PubsubAPI) Subscribe

func (api *PubsubAPI) Subscribe(ctx context.Context, topic string, opts ...caopts.PubSubSubscribeOption) (iface.PubSubSubscription, error)

type Request

type Request struct {
	Ctx     context.Context
	ApiBase string
	Command string
	Args    []string
	Opts    map[string]string
	Body    io.Reader
	Headers map[string]string
}

func NewRequest

func NewRequest(ctx context.Context, url, command string, args ...string) *Request

func (*Request) Send

func (r *Request) Send(c *http.Client) (*Response, error)

type RequestBuilder

type RequestBuilder interface {
	Arguments(args ...string) RequestBuilder
	BodyString(body string) RequestBuilder
	BodyBytes(body []byte) RequestBuilder
	Body(body io.Reader) RequestBuilder
	FileBody(body io.Reader) RequestBuilder
	Option(key string, value interface{}) RequestBuilder
	Header(name, value string) RequestBuilder
	Send(ctx context.Context) (*Response, error)
	Exec(ctx context.Context, res interface{}) error
}

type Response

type Response struct {
	Output io.ReadCloser
	Error  *Error
}

func (*Response) Cancel

func (r *Response) Cancel() error

Cancel aborts running request (without draining request body)

func (*Response) Close

func (r *Response) Close() error

type SwarmAPI

type SwarmAPI HttpApi

func (*SwarmAPI) Connect

func (api *SwarmAPI) Connect(ctx context.Context, pi peer.AddrInfo) error

func (*SwarmAPI) Disconnect

func (api *SwarmAPI) Disconnect(ctx context.Context, addr multiaddr.Multiaddr) error

func (*SwarmAPI) KnownAddrs

func (api *SwarmAPI) KnownAddrs(ctx context.Context) (map[peer.ID][]multiaddr.Multiaddr, error)

func (*SwarmAPI) ListenAddrs

func (api *SwarmAPI) ListenAddrs(ctx context.Context) ([]multiaddr.Multiaddr, error)

func (*SwarmAPI) LocalAddrs

func (api *SwarmAPI) LocalAddrs(ctx context.Context) ([]multiaddr.Multiaddr, error)

func (*SwarmAPI) Peers

func (api *SwarmAPI) Peers(ctx context.Context) ([]iface.ConnectionInfo, error)

type UnixfsAPI

type UnixfsAPI HttpApi

func (*UnixfsAPI) Add

func (api *UnixfsAPI) Add(ctx context.Context, f files.Node, opts ...caopts.UnixfsAddOption) (path.Resolved, error)

func (*UnixfsAPI) Get

func (api *UnixfsAPI) Get(ctx context.Context, p path.Path) (files.Node, error)

func (*UnixfsAPI) Ls

func (api *UnixfsAPI) Ls(ctx context.Context, p path.Path, opts ...caopts.UnixfsLsOption) (<-chan iface.DirEntry, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL