Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions docs/5.rest-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,99 @@ curl https://example.com/wp-json/wp/v2/abilities
]
```

## List Categories

### Definition

`GET /wp/v2/abilities/categories`

### Arguments

- `page` _(integer)_: Current page of the collection. Default: `1`.
- `per_page` _(integer)_: Maximum number of items to return per page. Default: `50`, Maximum: `100`.

### Example Request

```bash
curl -u 'USERNAME:APPLICATION_PASSWORD' \
https://example.com/wp-json/wp/v2/abilities/categories
```

### Example Response

```json
[
{
"slug": "data-retrieval",
"label": "Data Retrieval",
"description": "Abilities that retrieve and return data from the WordPress site.",
"meta": {},
"_links": {
"self": [
{
"href": "https://example.com/wp-json/wp/v2/abilities/categories/data-retrieval"
}
],
"collection": [
{
"href": "https://example.com/wp-json/wp/v2/abilities/categories"
}
],
"abilities": [
{
"href": "https://example.com/wp-json/wp/v2/abilities?category=data-retrieval"
}
]
}
}
]
```

## Retrieve a Category

### Definition

`GET /wp/v2/abilities/categories/{slug}`

### Arguments

- `slug` _(string)_: The unique slug of the category.

### Example Request

```bash
curl -u 'USERNAME:APPLICATION_PASSWORD' \
https://example.com/wp-json/wp/v2/abilities/categories/data-retrieval
```

### Example Response

```json
{
"slug": "data-retrieval",
"label": "Data Retrieval",
"description": "Abilities that retrieve and return data from the WordPress site.",
"meta": {},
"_links": {
"self": [
{
"href": "https://example.com/wp-json/wp/v2/abilities/categories/data-retrieval"
}
],
"collection": [
{
"href": "https://example.com/wp-json/wp/v2/abilities/categories"
}
],
"abilities": [
{
"href": "https://example.com/wp-json/wp/v2/abilities?category=data-retrieval"
}
]
}
}
```

## Retrieve an Ability

### Definition
Expand Down Expand Up @@ -247,5 +340,6 @@ The API returns standard WordPress REST API error responses with these common co
- `ability_invalid_output` - output validation failed according to the ability's schema.
- `ability_invalid_execute_callback` - the ability's execute callback is not callable.
- `rest_ability_not_found` - the requested ability is not registered.
- `rest_category_not_found` - the requested category is not registered.
- `rest_ability_invalid_method` - the requested HTTP method is not allowed for executing the selected ability (e.g., using GET on a read-only ability, or POST on a regular ability).
- `rest_ability_cannot_execute` - the ability cannot be executed due to insufficient permissions.
4 changes: 4 additions & 0 deletions includes/rest-api/class-wp-rest-abilities-init.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ class WP_REST_Abilities_Init {
public static function register_routes(): void {
require_once __DIR__ . '/endpoints/class-wp-rest-abilities-run-controller.php';
require_once __DIR__ . '/endpoints/class-wp-rest-abilities-list-controller.php';
require_once __DIR__ . '/endpoints/class-wp-rest-abilities-categories-controller.php';

$categories_controller = new WP_REST_Abilities_Categories_Controller();
$categories_controller->register_routes();

$run_controller = new WP_REST_Abilities_Run_Controller();
$run_controller->register_routes();
Expand Down
Loading