@maiyannah I think it would be overkill for us to invent some completely new API. From this position I see two main ways of current API improvement, and we can go both ways, implementing them separately:
1. Improvement of "Twitter” compatible API. The change that I propose is easily described and it may seem not that deep, but for some reason even @gargron, who, as I thought, is building a new API now, took a long pause on it:
in ALL API calls get rid of ALL "local IDs" (IDs of people, messages etc...), replacing them with URIs, which are the same for the same identifiable things (i.e. for the same objects) in all GNU Social instances. This requirement is easy to implement, if an URI:
1.1. Contains unique hostname of the GNU Social instance.
1.2. Contains type of the identifiable object,
e.g. ”acct:andstatus@loadaverage.org” - for an "account" ("person"), like in Pump.io.
The hard part of this change is that it requires changes in request parameters and (or) in data returned of all API calls. I mean we should go through all API calls and replace all local IDs with URIs, which I suspect not always exist in GNU Social for some objects...
2. Complete and document an API, based on Activity Streams and JSON format. As @mmn wrote me, Activity Streams + JSON are already implemented in GNU Social. But absence of documentation and working examples is a blocker here. This could be the second step of changes...
@lambadalambda @pennyfortheguy @mcscx