# Hívás REST-en

> Az LW Site Manager képességeinek hívása a WordPress Abilities REST API-ján: végpontok, HTTP-metódus, bemenet, válaszok és hibák.

A képességeket a WordPress saját Abilities REST API-ja futtatja (WordPress 6.9-től). Az LW Site Manager adja a tartalmukat.

| Végpont | Metódus | Mit ad |
|---|---|---|
| `/wp-json/wp-abilities/v1/abilities` | GET | A képességek listája. Szűrők: `category`, `namespace`, `page`, `per_page`. Lapozás: `X-WP-Total`, `X-WP-TotalPages` fejléc. |
| `/wp-json/wp-abilities/v1/abilities/{név}` | GET | Egy képesség leírása: `label`, `description`, `category`, `input_schema`, `output_schema`, `meta`. |
| `/wp-json/wp-abilities/v1/abilities/{név}/run` | GET, POST, DELETE | Futtatás |
| `/wp-json/wp-abilities/v1/categories` | GET | Kategóriák |

## Hitelesítés

WordPress-alkalmazásjelszó HTTP Basic hitelesítéssel (`-u "admin:xxxx xxxx xxxx xxxx xxxx xxxx"`), böngészőből a bejelentkezési süti és az `X-WP-Nonce` fejléc. REST-en a képesség saját jogosultsága dönt, nem kell hozzá adminisztrátor.

## Melyik HTTP-metódus?

A metódust a képesség jelölése határozza meg (ez a WordPress szabálya):

| A képesség | Metódus | Bemenet |
|---|---|---|
| olvasó (`readonly`) | **GET** | `input` query-paraméterben: `?input[id]=12` |
| romboló **és** idempotens | **DELETE** | `input` query-paraméterben |
| minden más | **POST** | JSON-törzs `input` kulccsal: `{"input": {…}}` |

A 189 REST-en látható képességből 66 GET, 100 POST és 23 DELETE. A metódus nem mindig az, amit várnál: az `activate-plugin`, a `set-homepage` és az `optimize-database` DELETE-tel fut, a WooCommerce `wc-delete-*` törlései POST-tal. A kategória-oldalak táblázatai minden képességnél megadják a metódust. Rossz metódusra `405 rest_ability_invalid_method` jön.

## Egy képesség leírása

```bash title="Terminál"
curl -u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" "https://pelda.hu/wp-json/wp-abilities/v1/abilities/site-manager/get-post-meta"
```

```json title="Válasz (rövidítve)"
{ "name": "site-manager/get-post-meta",
  "label": "Get Post Meta",
  "description": "Get meta data for a post or page",
  "category": "meta",
  "input_schema": { "type": "object", "default": {},
    "properties": {
      "post_id": { "type": "integer", "description": "Post or Page ID" },
      "key": { "type": "string", "description": "Specific meta key to retrieve (optional, returns all if not specified)" },
      "include_private": { "type": "boolean", "default": false, "description": "Include private meta keys (starting with _)" } },
    "required": [ "post_id" ] },
  "meta": { "annotations": { "readonly": true, "destructive": false, "idempotent": true },
            "show_in_rest": true, "mcp": { "public": true, "type": "tool" } } }
```

A `meta.annotations` mutatja, melyik metódus kell. A címke és a leírás magyar oldalon is angol.

## Válaszok

- Siker: `{ "success": true, "message": "…", … }`, utána az adatok.
- Lista: `{ "<kulcs>": [ … ], "total", "total_pages", "limit", "offset", "has_more" }`.
- Hiba: `{ "code": "…", "message": "…", "data": { "status": 4xx } }`.

Hitelesítés nélkül:

```json title="Válasz"
{ "code": "rest_ability_cannot_execute", "message": "Sajnos, nincs jogosultság ennek a képességnek a használatához.", "data": { "status": 401 } }
```

A tesztoldalon a `/abilities` lista 237 képességet adott: 189 `site-manager/*`, a többi a WordPress-é, a WooCommerce-é és más LW-bővítményeké. Valódi hívások: [Példák](https://hub.hellowp.io/hu/docs/lw-plugins/lw-site-manager/rest-api/peldak/).
