# REST API áttekintés

> Az LW LMS REST API-ja: a nyilvános lms/v1 végpontok, az admin API, a hitelesítés és a válaszok formátuma.

A tanulói felületed az `lms/v1` REST API-ra épül. Három felület van:

| Felület | Útvonal | Kinek |
|---|---|---|
| Nyilvános tanulói API | `/wp-json/lms/v1/…` | a frontendednek |
| [Admin API](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/admin/) | `/wp-json/lw-lms/v1/admin/…` | LMS-kezelőknek, adminisztrátoroknak |
| [Abilities](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/fejlesztoknek/#abilities) | `/wp-json/wp-abilities/v1/…` | WordPress 6.9-től |

## Végpontok

| Végpont | Ki hívhatja | Részletek |
|---|---|---|
| `GET /courses` | bárki | [Kurzusok](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/kurzusok/) |
| `GET /courses/{id}` | bárki | [Kurzusok](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/kurzusok/) |
| `GET /lessons/{id}` | akinek van hozzáférése | [Leckék és kvízek](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/leckek/) |
| `POST /lessons/{id}/quiz` | bejelentkezett, hozzáféréssel | [Leckék és kvízek](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/leckek/) |
| `GET /progress` | bejelentkezett | [Haladás](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/haladas/) |
| `POST /progress` | bejelentkezett, hozzáféréssel | [Haladás](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/haladas/) |
| `GET /progress/course/{id}` | bejelentkezett | [Haladás](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/haladas/) |
| `GET /download/{id}` | aláírt linkkel vagy bejelentkezve | [Leckék és kvízek](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/leckek/#mellékletek-letöltése) |

Az alap URL: `https://pelda.hu/wp-json/lms/v1/`. Ha a szép permalinkek ki vannak kapcsolva: `https://pelda.hu/?rest_route=/lms/v1/…`.

> **Ingyenes kurzusnál egy GET is feliratkoztat**
>
> Ha **bejelentkezett** felhasználó lekéri egy ingyenes kurzus részleteit (`GET /courses/{id}`) vagy megnyitja egy leckéjét (`GET /lessons/{id}`), a bővítmény **feliratkozást rögzít** „Ingyenes kurzus” forrással, és lefut a `lw_lms_after_grant` akció is. A kurzuslista (`GET /courses`) soha nem iratkoztat fel.
>
> A katalógus-oldalad ezért a listából dolgozzon. A kurzus részletező oldalának megnyitása már beiratkozásnak számít.

## Hitelesítés

- **Külön frontend vagy alkalmazás:** WordPress-alkalmazásjelszó HTTP Basic hitelesítéssel. A tanuló a **Felhasználók → Profil → Alkalmazásjelszavak** részen hozza létre.
- **Ugyanazon a domainen futó téma:** a bejelentkezési süti és az `X-WP-Nonce` fejléc (`wp_rest` nonce).

A példák WordPress-alkalmazásjelszót használnak (`-u "felhasználó:jelszó"`). A `tanulo:…` a tanuló saját fiókja, az `admin:…` egy adminisztrátoré.

## Válaszok

- A válasz JSON. A lapozás adatai a válasz `meta` objektumában vannak, **nem** az `X-WP-Total` fejlécben.
- Hibánál: `{ "code": "…", "message": "…", "data": { "status": 4xx } }`. Az üzenet a webhely nyelvén jön, magyar oldalon magyarul.

> **A WordPress saját lecke-végpontja zárva van**
>
> A `/wp-json/wp/v2/lesson` csak szerkesztőknek válaszol. Mindenki más ezt kapja: „A leckék az LMS API-n keresztül érhetők el (/lms/v1/lessons).” A frontend mindig az `lms/v1` végpontokat hívja.
