1
0
Fork 0
mirror of https://github.com/buddypress/buddypress.git synced 2026-07-23 21:06:56 +08:00
buddypress/docs/developer/execution-contexts/rest-api/components.md
Mathieu Viet 00eb574c81 Documentation: start documenting v2 of the BP REST API
Add the following page to developer doc:
- Introduction about the BP REST API
- Reference: list of REST API Routes
- Components routes
- Members routes

NB: this commit also improves Components and Members REST controllers item schemas.

See https://buddypress.trac.wordpress.org/ticket/9145
Closes https://github.com/buddypress/buddypress/pull/382



git-svn-id: https://buddypress.svn.wordpress.org/trunk@14042 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
2024-10-09 04:36:10 +00:00

93 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Components REST API routes
BuddyPress chose a modular approach using components to organize its features. Two components are loaded by default (eg: BuddyPress Core and Community Members) while the majority are optional. BuddyPress comes with 8 built-in optional components (Account Settings, Activity Streams, Extended Profiles, Friend connections, Notifications, Private messaging, User groups and Site Tracking).
> [!IMPORTANT]
> Its important to note there can be more than one optional component from BuddyPress plugins installed on the website: these plugins can use the BuddyPress Component API to incorporate the lists of active or inactive components.
## Schema
The schema defines all the fields that exist for BuddyPress components.
| Property | Description |
| --- | --- |
| `name` | Key name of the component. <br />JSON data type: _string_. <br />Context: `view`, `edit`. |
| `is_active` | Whether the component is active or not. <br />JSON data type: _boolean_. <br />Default: `false`. <br />Context: `view`, `edit`. |
| `status` | Whether the component is active or inactive. <br />JSON data type: _string_. <br />Context: `view`, `edit`. <br />One of: `active`, `inactive`. |
| `title` | Title of the component. <br />JSON data type: _string_. <br />Context: `view`, `edit`. |
| `description` | Description of the component. <br />JSON data type: _string_. <br />Context: `view`, `edit`. |
| `features` | Information about active features for the component. <br />JSON data type: _object_ \| _null_. <br />Default: `null`. <br />Context: `view`, `edit`. |
## List the BuddyPress components
### Arguments
| Name | Description |
| --- | --- |
| `context` | Scope under which the request is made; determines fields present in response. <br />JSON data type: _string_. <br />Default: `view`. <br />One of: `view`, `edit`. |
| `page` | Current page of the collection. <br />JSON data type: _integer_. <br />Default: `1`. |
| `per_page` | Maximum number of components to be returned in result set. <br />JSON data type: _integer_. <br />Default: `10`. |
| `search` | Limit results to those matching a string. <br />JSON data type: _string_. |
| `status` | Limit result set to components with a specific status. <br />JSON data type: _string_. <br />Default: `all`. <br />One of: `all, active, inactive`. |
| `type` | Information about active features for the component. <br />JSON data type: _string_. <br />Default: `all`. <br />One of: `all, optional, retired, required`. |
### Definition
`GET /buddypress/v2/components`
### Example of use
> [!WARNING]
> The `requestHeaders` object needs to be set according to the WordPress REST API nonce. Read more about the [REST API authentification](./README.md#about-authentification).
```javascript
fetch( '/wp-json/buddypress/v2/components?context=edit&status=active', {
method: 'GET',
headers: requestHeaders,
} ).then( ( response ) => {
return response.json();
} ).then( ( data ) => {
console.table( data );
} );
```
### JSON Response
- An array of objects representing the matching components on success.
- An object containg the error code, data and message on failure.
## Activate or Deactivate a BuddyPress component
### Arguments
| Name | Description |
| --- | --- |
| `name` | Key name of the component. **Required**. <br />JSON data type: _string_. |
| `action` | Whether to activate or deactivate the component. **Required**. <br />JSON data type: _string_. <br />One of: `activate`, `deactivate`. |
### Definition
`PUT /buddypress/v2/components`
### Example of use
> [!WARNING]
> The `requestHeaders` needs to be set according to the WordPress REST API nonce. Read more about the [REST API authentification](./README.md#about-authentification).
```javascript
fetch( '/wp-json/buddypress/v2/components', {
method: 'PUT',
headers: requestHeaders,
body: JSON.stringify( { name: 'groups', action: 'activate' } ),
} ).then( ( response ) => {
return response.json();
} ).then( ( data ) => {
console.log( data );
} );
```
### JSON Response
- An object representing the updated component on success.
- An object containg the error code, data and message on failure.