tanszek:oktatas:informacios_rendszerek_integralasa:graphql_integracio
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tanszek:oktatas:informacios_rendszerek_integralasa:graphql_integracio [2025/04/07 16:42] – knehez | tanszek:oktatas:informacios_rendszerek_integralasa:graphql_integracio [2026/04/24 11:42] (current) – knehez | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ==== GraphQL integráció ==== | ==== GraphQL integráció ==== | ||
| + | |||
| + | A GraphQL egy modern API-lekérdezési nyelv és futtatókörnyezet, | ||
| + | |||
| + | A hagyományos REST API-k esetén a kliens különböző endpointokon keresztül kér le adatokat, és gyakran előfordul, hogy több HTTP-kérésre van szükség az összes szükséges információ megszerzéséhez. Emellett a szerver által visszaadott adatszerkezet fix, így a kliens sokszor több adatot kap, mint amire valójában szüksége van. | ||
| + | |||
| + | A GraphQL ezt a problémát úgy oldja meg, hogy a kliens pontosan megadhatja, milyen adatmezőket szeretne lekérdezni. A szerver ennek megfelelően csak a kért adatokat küldi vissza. Ez csökkenti a hálózati forgalmat és egyszerűbbé teszi az összetett adatszerkezetek lekérdezését. | ||
| + | |||
| + | A GraphQL működésének három alapvető eleme van: | ||
| + | |||
| + | * **Schema** – a rendszer adatmodelljének és lekérdezési lehetőségeinek leírása. A schema határozza meg, milyen típusok, mezők és műveletek érhetők el az API-ban. | ||
| + | |||
| + | * **Query** – adatlekérdezésre szolgál. A kliens meghatározza, | ||
| + | |||
| + | * **Mutation** – adatmódosító műveletek (például létrehozás, | ||
| + | |||
| + | A GraphQL egyik fontos jellemzője, | ||
| + | |||
| + | A GraphQL különösen előnyös olyan rendszerekben, | ||
| + | |||
| + | * a kliensalkalmazások különböző adatszerkezeteket igényelnek, | ||
| + | * összetett, egymáshoz kapcsolódó adatok lekérdezése szükséges, | ||
| + | * fontos a hálózati forgalom minimalizálása. | ||
| + | |||
| + | Ugyanakkor a GraphQL implementációja általában összetettebb, | ||
| + | |||
| + | Az alábbi részben bemutatjuk a GraphQL alapvető jellemzőit, | ||
| Főbb tulajdonságok összehasonlítása a RESTAPI-val. | Főbb tulajdonságok összehasonlítása a RESTAPI-val. | ||
| Line 5: | Line 31: | ||
| Hivatalos dokumentáció: | Hivatalos dokumentáció: | ||
| - | https:// | + | https:// |
| | | **REST API** | **GraphQL** | | | | **REST API** | **GraphQL** | | ||
| Line 12: | Line 38: | ||
| | **Adatok** | Több lekérdezésre lehet szükség összetett adatokhoz | Egyetlen kérésben lekérdezhető minden szükséges adat | | | **Adatok** | Több lekérdezésre lehet szükség összetett adatokhoz | Egyetlen kérésben lekérdezhető minden szükséges adat | | ||
| | **Hálózati hatékonyság** | Többszöri kérés esetén megnő a hálózati forgalom | Csökkenti a felesleges adatátvitelt és lekérdezések számát | | | **Hálózati hatékonyság** | Többszöri kérés esetén megnő a hálózati forgalom | Csökkenti a felesleges adatátvitelt és lekérdezések számát | | ||
| - | | **Használhatóság** | Egyszerű, széles körben ismert | Nehezebben elsajátítható, | ||
| | **Gyorsítótárazás (Caching)** | HTTP cache és CDN támogatott | Nehezebb megvalósítani, | | **Gyorsítótárazás (Caching)** | HTTP cache és CDN támogatott | Nehezebb megvalósítani, | ||
| | **Verziókezelés** | API verziózás szükséges (pl. `/ | | **Verziókezelés** | API verziózás szükséges (pl. `/ | ||
| Line 20: | Line 45: | ||
| | **Alkalmazási körök** | Egyszerű CRUD API-khoz ideális | Összetett, dinamikus kliensigényekhez jobb választás | | | **Alkalmazási körök** | Egyszerű CRUD API-khoz ideális | Összetett, dinamikus kliensigényekhez jobb választás | | ||
| - | Python virtuális környezet | + | Python virtuális környezet |
| + | |||
| + | < | ||
| + | python -m virtualenv .venv | ||
| + | </ | ||
| + | |||
| + | Majd ez után az alábbi sorral telepíthetjük a függőségeket: | ||
| < | < | ||
| Line 80: | Line 111: | ||
| 👉 http:// | 👉 http:// | ||
| - | === Mintafeladat: | + | ---- |
| + | |||
| + | ===== Mintafeladat: | ||
| ==== Feladat leírása ==== | ==== Feladat leírása ==== | ||
| - | Készíts | + | Készítsünk |
| ==== Követelmények ==== | ==== Követelmények ==== | ||
| Line 138: | Line 171: | ||
| ==== Technikai követelmények ==== | ==== Technikai követelmények ==== | ||
| - | * Használj | + | * Használjunk |
| - | * Tárolásra | + | * Tárolásra |
| * A GraphQL endpoint legyen elérhető a `http:// | * A GraphQL endpoint legyen elérhető a `http:// | ||
| - | ==== Bónusz | + | ==== Kiegészítő |
| - | * Valósíts meg egy új mutációt: egy szerző hozzáadása név alapján | + | * Készítsünk |
| * Lekérdezés, | * Lekérdezés, | ||
tanszek/oktatas/informacios_rendszerek_integralasa/graphql_integracio.1744044155.txt.gz · Last modified: 2025/04/07 16:42 by knehez
