We’ve finally reached the milestone we’ve all been waiting for. With the completion of the Search API Endpoint the Diaspora API is now feature complete. That doesn’t mean that it’s ready for integration into the mainline branch. It also doesn’t mean that there isn’t more fundamental work that has to be done before it can be used on a production system. It does however mean that we can start working on rounding out some of the other fundamentals and make our way in that direction.
The first thing that I am going to work on is the paging aspect to the API. The API spec discusses paging as a thing that endpoints may or may not do. Right now there is no paging. That’s fine for some things, like getting a list of Aspects for a user. It is a requirement for something like getting a list of a user’s posts or for getting your stream. For non-developers who are reading this think of this as the piece that makes your “infinite scroll” work. Diaspora has implemented this in other areas but it will have to work a bit differently for the API. We’ve already had discussions about how we want it to work and there is a format specification for reporting it back. It therefore should be relatively straight forward to get it implemented. That is what I’m working on right now. After that we’ll want to go over all of the new code with a fine tooth comb for style and idiom consistencies (beyond the automatic style checker), security reviews, etc. Lastly we’ll want to get the OpenID authentication/authorization/etc. stuff polished up a bit. Currently the app has to be re-registered every day. That’s not going to be viable for a real user even if it is for testing.
Still, the fact we’ve reached a feature complete milestone is great news and I’m excited to be ending the weekend on that high note.
- Diaspora API is now feature complete
- Search API endpoint, unit tests, and test harness are complete
- User contacts endpoint implemented completing that endpoint
- Beginning work on paging infrastructure for API endpoints that need it
To follow along with status please see the Google Sheet Dashboard.