Skip to content

Commit

Permalink
Merge pull request #4493 from ipfs/docs/coreapi
Browse files Browse the repository at this point in the history
docs/coreapi: Add some documentation to CoreAPI
  • Loading branch information
whyrusleeping authored Dec 15, 2017
2 parents f3f0179 + eb537a7 commit 3aba639
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
1 change: 1 addition & 0 deletions core/coreapi/coreapi.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ type CoreAPI struct {
node *core.IpfsNode
}

// NewCoreAPI creates new instance of IPFS CoreAPI backed by go-ipfs Node
func NewCoreAPI(n *core.IpfsNode) coreiface.CoreAPI {
api := &CoreAPI{n}
return api
Expand Down
17 changes: 17 additions & 0 deletions core/coreapi/interface/interface.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// Package iface defines IPFS Core API which is a set of interfaces used to
// interact with IPFS nodes.
package iface

import (
Expand All @@ -9,6 +11,8 @@ import (
ipld "gx/ipfs/QmPN7cwmpcc4DWXb4KTB9dNAJgjuPY69h3npsMfhRrQL9c/go-ipld-format"
)

// Path is a generic wrapper for paths used in the API. A path can be resolved
// to a CID using one of Resolve functions in the API.
type Path interface {
String() string
Cid() *cid.Cid
Expand All @@ -26,15 +30,28 @@ type Reader interface {
io.Closer
}

// CoreAPI defines an unified interface to IPFS for Go programs.
type CoreAPI interface {
// Unixfs returns an implementation of Unixfs API
Unixfs() UnixfsAPI

// ResolvePath resolves the path using Unixfs resolver
ResolvePath(context.Context, Path) (Path, error)

// ResolveNode resolves the path (if not resolved already) using Unixfs
// resolver, gets and returns the resolved Node
ResolveNode(context.Context, Path) (Node, error)
}

// UnixfsAPI is the basic interface to immutable files in IPFS
type UnixfsAPI interface {
// Add imports the data from the reader into merkledag file
Add(context.Context, io.Reader) (Path, error)

// Cat returns a reader for the file
Cat(context.Context, Path) (Reader, error)

// Ls returns the list of links in a directory
Ls(context.Context, Path) ([]*Link, error)
}

Expand Down

0 comments on commit 3aba639

Please sign in to comment.