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/02/22 16:27] – knehez | tanszek:oktatas:informacios_rendszerek_integralasa:graphql_integracio [2025/04/07 16:44] (current) – [Feladat leírása] knehez | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ==== GraphQL integráció ==== | ==== GraphQL integráció ==== | ||
| + | |||
| + | Főbb tulajdonságok összehasonlítása a RESTAPI-val. | ||
| + | |||
| + | Hivatalos dokumentáció: | ||
| + | |||
| + | https:// | ||
| | | **REST API** | **GraphQL** | | | | **REST API** | **GraphQL** | | ||
| Line 12: | Line 18: | ||
| | **Biztonság és hozzáférés-kezelés** | Beépített HTTP biztonság, szerepkörök | Finomhangolt hozzáférési szabályok szükségesek (pl. mezőszintű jogosultságok) | | | **Biztonság és hozzáférés-kezelés** | Beépített HTTP biztonság, szerepkörök | Finomhangolt hozzáférési szabályok szükségesek (pl. mezőszintű jogosultságok) | | ||
| | **Támogatott formátumok** | Általában JSON (de támogat másokat is) | JSON alapú (szigorúan GraphQL schema szerint) | | | **Támogatott formátumok** | Általában JSON (de támogat másokat is) | JSON alapú (szigorúan GraphQL schema szerint) | | ||
| - | | **Használati esetek** | 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 kialakítás után az alábbi sorral telepíthetjük a függőségeket: | ||
| < | < | ||
| pip install fastapi strawberry-graphql uvicorn | pip install fastapi strawberry-graphql uvicorn | ||
| </ | </ | ||
| + | |||
| + | Mintapélda az első használathoz: | ||
| <sxh python> | <sxh python> | ||
| Line 68: | Line 77: | ||
| </ | </ | ||
| - | Majd nyisd meg a GraphQL Playground-ot a következő URL-en: | + | A GraphQL Playground a következő URL-en |
| 👉 http:// | 👉 http:// | ||
| + | ---- | ||
| + | |||
| + | ===== Mintafeladat: | ||
| + | |||
| + | ==== Feladat leírása ==== | ||
| + | Készítsünk egy egyszerű GraphQL API-t, amely egy könyvtár adatait kezeli. A rendszer tárolja a könyveket és a szerzőket, valamint lehetőséget ad új könyv felvitelére. | ||
| + | |||
| + | ==== Követelmények ==== | ||
| + | |||
| + | A GraphQL séma tartalmazza az alábbi típusokat: | ||
| + | |||
| + | * **Author**: | ||
| + | * `id` (Int) | ||
| + | * `name` (String) | ||
| + | |||
| + | * **Book**: | ||
| + | * `id` (Int) | ||
| + | * `title` (String) | ||
| + | * `author` (Author) | ||
| + | * `year` (Int) | ||
| + | |||
| + | ==== Implementálandó funkciók ==== | ||
| + | |||
| + | * **Lekérdezés: | ||
| + | * Az összes könyv lekérdezése (cím, szerző neve, év) | ||
| + | * Egy szerző könyveinek lekérdezése név alapján | ||
| + | |||
| + | * **Mutáció: | ||
| + | * Új könyv hozzáadása a következő adatokkal: cím, szerző ID, év | ||
| + | |||
| + | ==== Példa lekérdezés ==== | ||
| + | |||
| + | <code javascript> | ||
| + | query { | ||
| + | books { | ||
| + | title | ||
| + | author { | ||
| + | name | ||
| + | } | ||
| + | year | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Példa mutáció ==== | ||
| + | |||
| + | <code javascript> | ||
| + | mutation { | ||
| + | addBook(title: | ||
| + | id | ||
| + | title | ||
| + | author { | ||
| + | name | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Technikai követelmények ==== | ||
| + | |||
| + | * Használj **FastAPI** + **Strawberry GraphQL** könyvtárakat | ||
| + | * Tárolásra használj beépített listákat (pl. `authors`, `books`) | ||
| + | * A GraphQL endpoint legyen elérhető a `http:// | ||
| + | |||
| + | ==== Bónusz feladat ==== | ||
| + | |||
| + | * Valósíts meg egy új mutációt: egy szerző hozzáadása név alapján | ||
| + | * Lekérdezés, | ||
tanszek/oktatas/informacios_rendszerek_integralasa/graphql_integracio.1740241657.txt.gz · Last modified: 2025/02/22 16:27 by knehez
