We had a productive chat about the BP REST API today.
In attendance: offereins, boone, djpaul, espellcaste, mamaduka, chetansatasiya, shanebp, dimensionmedia, shitalmarakana, modemlooper (fashionably late)
We made some preliminary decisions about strategy and next steps:
- We’ll be starting with the Members endpoints, a rough list of which will be:
- create user
- update user
- delete user
- get user
- get users
This phase will also include support for XProfile data – fetching field data, setting field data, querying by field data – though it’s not yet determined whether these things will happen via separate endpoints or as query params passed to the endpoints described above.
- During the chat, we were leaning toward piggybacking on WP’s
/wp/v2/usersendpoint for BP member queries. modemlooper pointed out after the meeting that WP locks down the
get_items()users query to users with certain permissions levels, and also that security plugins have blocked the endpoint altogether. This pretty strongly suggests that we should go with our own
- We brainstormed a few early ways that we might take advantage of Members endpoints in BuddyPress itself:
- member widget AJAX
- @-mention AJAX
- user search when adding users to group in wp-admin
- I’ve started a Google Doc for sketching out the existing PHP CRUD interfaces for BP content. This’ll be a helpful starting point for understanding the conventions and syntax we should use across the REST API endpoints, as well as to understand how we can come up with a set of endpoints and routes that cover all our content types in a way that is non-redundant. Anyone should feel free to pitch in: https://docs.google.com/document/d/16Wah0MQRS_ktWQSJLGfiAlxHKXORtpo-QaX9JUGxXnA/edit?usp=sharing
- We’ll be continuing to work in the GitHub repository https://github.com/buddypress/bp-rest. Improvements should be sent via PR and peer reviewed before being merged. We’ll give people merge/push permissions after they’ve proved themselves with a couple good PRs.
- We’ll have our next meeting Thursday, December 22 at 1700 UTC. Then we’ll take a break for the holidays, and hold weekly meetings at this time starting in January.