See previously: https://bpdevel.wordpress.com/2019/01/23/bp-rest-api-chat-monday-jan-28/
We chatted briefly about the current state of the API code https://github.com/buddypress/bp-rest. CRUD coverage for BP content types is about 90% complete, with a few pending PRs. Renato and Boone are working toward 100% in the next week or two.
There was general agreement that the BP 5.0 release should focus on the REST API, with a tentative date of Q1 2019 suggested. A few discussion points:
Questions about API usage have already come in at a fairly fast pace on the GitHub issue tracker. As such, we aim toward having documentation covering basic usage by the time we ship. For reference, the WP REST API documentation on developer.wordpress.org contains both hand-built documentation and automatically generated docs. See https://developer.wordpress.org/rest-api/ and https://developer.wordpress.org/rest-api/reference/. We’re hopeful that we can leverage some of wordpress.org’s tools for automated generation of documentation, or perhaps a third-party tool like https://github.com/humanmade/Restsplain In the upcoming weeks, we’ll try to collect team wisdom on the current state of buddypress.org and the options available to us.
If it’s not possible to make major mods to our wordpress.org documentation in order to support these automatically-generated docs, we might roll our own outside of wordpress.org, much in the manner of https://wp-api.org prior to the core REST API merge.
Authentication is likely to be a point where documentation is especially important, particularly because the majority of BP site users are authenticated. There have also been some questions on the GitHub repo about the consistency of making authenticated requests, the use of nonces, etc. For reference, here’s the core page on API authentication: https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
BP core API usage
There was general agreement that it’d be wise for BuddyPress itself to use the API in at least a handful of ways for the 5.0 release. In addition to enabling new, AJAX-powered interfaces, the process of building on top of the REST API for BP itself will help the team gain familiarity with the nature of the API, and improve its usability before the public launch.
In some cases, existing AJAX can be converted to use the API. See eg https://buddypress.trac.wordpress.org/ticket/8043#ticket. In other cases, we may consider adding new interface features using the API. See eg https://buddypress.trac.wordpress.org/ticket/8045#ticket. While it’s generally safest to modify existing functionality in the Dashboard – where our interfaces aren’t easily customizable by themes etc – it may be possible to swap out some front-end stuff (say, in Nouveau) without too much breakage. My initial thought was directory AJAX, but then I remembered that some of those existing endpoints return markup rather than JSON-formatted entities. Any ideas are welcome.
In support of the 5.0 push, we’d like to reestablish regular project meetings. The current proposal is to use the old meeting time of Wednesdays at 19:00 UTC, every other week beginning February 13.