# REST API a JetEngine-ben

> A REST API-modul, a végpontok felvétele és hitelesítése, a CCT-k, kapcsolatok és meta mezők REST-eléréséhez szükséges beállítások.

A REST API (Representational State Transfer, Application Programming Interface) olyan programozási felület, amellyel kapcsolatot építhetsz az oldalad és egy másik weboldal vagy alkalmazás között. A két fél JSON formátumban cserél adatot.

A működés: az „A” oldalon létrehozol egy **végpontot** (endpoint). Ez egy elérési pont, amelynek beállításai határozzák meg, milyen adat kérhető le az oldaladról. A „B” oldalon felveszed ezt a végpontot, majd előlapi blokkal (például Listing Grid-del) kéréseket küldesz az „A” oldalnak. Ugyanígy működik az oldal és egy alkalmazás kapcsolata is.

## A REST API modul

1. Nyisd meg a **JetEngine → JetEngine** oldalt. A **Modulok** fül az alapértelmezett.
2. Kapcsold be a **REST API-listázások** kapcsolót, majd kattints a **Mentés** gombra.
3. Megjelenik a **REST API-végpontok** fül. Az **Új végpont** gombbal veszel fel egy végpontot.

Egy végpont beállításai:

| Beállítás | Mit csinál |
|---|---|
| **Name** (név) | A végpont címe a listában. |
| **API Endpoint URL** | Az a cím, ahonnan az adatot lekéri. |
| **Items path** | Ha az URL közvetlenül az elemeket adja, hagyj egy `/` jelet. Ha az elemek mappákban vannak, itt add meg az útvonalat, például `/items`. |
| **Authorization** | Kapcsoló a hitelesítéshez. Bekapcsolva megjelenik az **Authorization type** lista. |
| **Status** | A végpont működésének ellenőrzése. A Listing Griddel való munkához a **Connected** állapot kell. |
| **Sample request** | A **Send Request** gombbal mintakérést küld: ellenőrzi a hitelesítést, és lekéri a mintaadatot. |
| **Cache** | A válaszokat a lekérdezési argumentumok szerint gyorsítótárazza, ami jelentősen gyorsít. A **Cache duration period** és a **Cache duration value** mezőkkel adod meg az időtartamot (perc, óra, nap). |

A **Mentés** gombbal mented a végpontot.

### Hitelesítés típusai

| Típus | Mezők |
|---|---|
| **Application Password** | **User:password string**: a felhasználó és a jelszó kettősponttal elválasztva. |
| **Bearer Token** | **Bearer token**: a token. |
| **Custom Header** | **Header name** (a fejléc neve) és **Header value** (az értéke), az API leírásában találod. |
| **RapidAPI** | **RapidAPI Key** és **RapidAPI Host**, a rapidapi.com-on a végpont beállításaiban találod. |

Ha a „Status” nem lesz „Connected”, ellenőrizd az elemek útvonalát (**Items path**): a rossz útvonal a leggyakoribb ok.

## REST API CCT-khez

Az egyéni tartalomtípusok (CCT) elemeihez négy műveletre regisztrálhatsz végpontot a CCT szerkesztőjében:

- **Register get items/item REST API Endpoint**: elemek lekérése;
- **Register create items/item REST API Endpoint**: új elem létrehozása;
- **Register update item REST API Endpoint**: meglévő elem felülírása, ha a felhasználók módosíthatják az adatot;
- **Register delete item REST API Endpoint**: elem törlése.

A részleteket a [CCT REST API](https://hub.hellowp.io/hu/plugins/jet-engine/cct-rest-api/) és a [CCT elemek lekérése REST API-n](https://hub.hellowp.io/hu/plugins/jet-engine/cct-rest-lekeres/) fejezet írja le.

## REST API kapcsolatokhoz

A JetEngine kapcsolatokhoz (relations) is regisztrálhatsz végpontot. A **JetEngine → Relations** oldalon nyisd meg a kapcsolat szerkesztését, és kapcsold be a **Register get items/item REST API Endpoint** kapcsolót. Itt két mező van:

- **Endpoint URL**: innen veheted a végpont címeit;
- **Access Capability**: a hozzáférést szabályozza. Üresen hagyva mindenki eléri; ha megadod egy képesség nevét (például `create_sites`), csak az érheti el, aki rendelkezik vele (a példában a Super Admin).

A **Register update REST API Endpoint** kapcsoló ugyanilyen beállításokat ad, de más URL-opciókkal. Részletek: [Kapcsolatok REST API-n](https://hub.hellowp.io/hu/plugins/jet-engine/kapcsolatok-rest-api/).

## REST API lekérdezés

A REST API a Lekérdezéskészítőben is forrás lehet: a **REST API lekérdezés** típussal a végpont elemeit lekérdezheted. Lásd a [REST API-elemek lekérdezése](https://hub.hellowp.io/hu/plugins/jet-engine/query-builder-rest-lekerdezes-adattipusok/) fejezetet.

## REST API meta mezőkhöz

A meta mezők is elérhetők REST API-n.

1. Nyisd meg a meta mező beállításait (lehet bejegyzés-, felhasználó- vagy taxonómia-meta).
2. Kapcsold be a **Show in REST API** kapcsolót.
3. Frissítsd a meta box-ot vagy a bejegyzéstípust a megfelelő gombbal. Ezután a mező lekérhető és frissíthető REST API-n.

Az elérési utak:

| Mire vonatkozik | URL |
|---|---|
| Bejegyzések | `https://weboldal/wp-json/wp/v2/posts` (a `posts` helyett a bejegyzéstípus slugja) |
| Taxonómia | `https://weboldal/wp-json/wp/v2/my_category` (a taxonómia slugja) |
| Felhasználók | `https://weboldal/wp-json/wp/v2/users` |
| Beállítóoldalak | `https://weboldal/wp-json/wp/v2/settings` |

Fontos feltételek:

- A kapcsoló minden mezőtípusnál elérhető, kivéve a **HTML** típust.
- A bejegyzéstípus (vagy a taxonómia) **Speciális beállítások** lapján is be kell kapcsolni a **Show in Rest API** opciót, különben a meta mezők nem lesznek elérhetők.
- A `settings` útvonal nem nyilvános: hitelesítés kell hozzá, például az Application Password funkcióval.
