Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http-api-spec.ng - Roadmap, Priorities and Discussions of where to take the HTTP API #208

Closed
daviddias opened this issue Aug 16, 2016 · 6 comments
Labels
topic/http-api Topic http-api

Comments

@daviddias
Copy link
Member

daviddias commented Aug 16, 2016

This issue is a follow up on last HTTP-API Sprint call, August 15.

tl;dr; The HTTP-API is one of the most common and used interfaces to interact with IPFS core, however, it has been historically a PITA to deal with and implement client libraries that work both in the browser and natively + that keep up to date with the evolution of API itself

Current issues

  • There is no way to actual verify that the HTTP-API documentation still applies to the current state of go-ipfs
  • There is no way to notify developers of client libraries, when does the HTTP-API changes and how did it change
  • go-ipfs doesn't have a process to verify if the client libraries work before releasing

Discussions & Proposals to improve the HTTP-API and process

Priorities

  • Get the go-ipfs batch of tests to be executable against other HTTP-API implementations (namely, the js-ipfs one)

Moar issues

@daviddias daviddias changed the title http-api-spec.next - Roadmap, Priorities and Discussions of where to take the HTTP API http-api-spec.ng - Roadmap, Priorities and Discussions of where to take the HTTP API Aug 16, 2016
@magik6k
Copy link
Member

magik6k commented Dec 17, 2018

IIRC there was some API 2.0 discussion on the dev meeting in Glasgow/London. I don't know where the notes are, but it would be nice to link them here / write them down

@daviddias daviddias transferred this issue from ipfs-inactive/http-api-spec Jul 10, 2019
@daviddias daviddias added the topic/http-api Topic http-api label Oct 7, 2019
@achingbrain
Copy link
Member

achingbrain commented Oct 7, 2019

I did a bunch of work related to improving the http api a while ago, the demo version is here (though needs a bit of love): https://github.com/ipfs-shipyard/ipfs-http

My approach was to use REST and not RPC because having worked with both, my experience of RPC is that it tends to be inflexible, reflects the conventions of the platform it's implemented against in terms of data types and procedure addressing and usually ends up with a very large API surface area, none of which we want.

@mikeal
Copy link

mikeal commented Oct 7, 2019

One thing you might struggle with in a more RESTful approach is how to efficiently send multiple blocks in a single response.

You may want to check out @rvagg’s work on zipcar, essentially just a zip-based container for IPLD blocks. There are implementations in js and go already.

@ianopolous
Copy link
Member

One thing you might struggle with in a more RESTful approach is how to efficiently send multiple blocks in a single response.

Related discussion here for multiple blocks in a put request: ipfs/kubo#3667

@achingbrain
Copy link
Member

achingbrain commented Oct 7, 2019

One thing you might struggle with in a more RESTful approach is how to efficiently send multiple blocks in a single response.

This depends on how you define your resources, though it would be interesting to see if you'd get better performance by just making multiple requests in parallel because sending multiple blocks in a single response is ultimately going to be similar to sending them in series as the server can only send one byte at a time in a given response.

@lidel
Copy link
Member

lidel commented Nov 5, 2019

cc:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic/http-api Topic http-api
Projects
None yet
Development

No branches or pull requests

6 participants