Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
ÉRVÉNYES MINDEN API-kezelési szintre
Az API Management használatával kezelheti a GraphQL API-kat, amelyek a GraphQL lekérdezési nyelvén alapuló API-k. A GraphQL az API-k adatainak teljes és érthető leírását nyújtja, így az ügyfelek hatékonyan lekérhetik a szükséges adatokat. További információ a GraphQL-ről.
Az API Management segít a GraphQL API-k importálásában, kezelésében, védelmében, tesztelésében, közzétételében és monitorozásában. Két API-modell közül választhat:
| Adattovábbító GraphQL | Szintetikus GraphQL |
|---|---|
| ▪️ Közvetlen API a meglévő GraphQL szolgáltatási végpontra ▪️ GraphQL-lekérdezések, mutációk és előfizetések támogatása |
▪️ EGYÉNI GraphQL-sémán alapuló API ▪️ GraphQL-lekérdezések, mutációk és előfizetések támogatása ▪️ Egyéni feloldók konfigurálása például HTTP-adatforrásokra ▪️ GraphQL-sémák és GraphQL-alapú ügyfelek fejlesztése örökölt API-kból származó adatok felhasználása közben ▪️ A szintetikus előfizetésekhez nincs szükség feloldókra. Lásd a közzétételi eseményre vonatkozó szabályzatot. |
Elérhetőség
- A GraphQL API-k minden API Management szolgáltatásszinten támogatottak.
- A szintetikus GraphQL API-k jelenleg nem támogatottak az API Management-munkaterületeken.
- A GraphQL-előfizetések támogatása a szintetikus GraphQL API-kban jelenleg előzetes verzióban érhető el, és nem érhető el a Használat rétegben.
Mi az a GraphQL?
A GraphQL az API-k nyílt forráskódú, iparági szabvány szerinti lekérdezési nyelve. Az erőforrásokon végzett műveletek köré tervezett REST-stílusú API-któl eltérően a GraphQL API-k szélesebb körű használati eseteket támogatnak, és az adattípusokra, sémákra és lekérdezésekre összpontosítanak.
A GraphQL-specifikáció kifejezetten megoldja a REST API-kra támaszkodó ügyfél-webalkalmazások által tapasztalt gyakori problémákat:
- Az egyetlen oldal adatigényeinek teljesítéséhez nagy számú kérésre lehet szükség.
- A REST API-k gyakran több adatot adnak vissza, mint amennyit a renderelt oldal igényel.
- Az ügyfélalkalmazásnak le kell kérdeznie az új információkat.
A GraphQL API használatával az ügyfélalkalmazás megadhatja azokat az adatokat, amelyekre szüksége van egy lap megjelenítéséhez egy lekérdezési dokumentumban, amelyet egyetlen kérésként küldenek egy GraphQL-szolgáltatásnak. Az ügyfélalkalmazások valós időben feliratkozhatnak a GraphQL szolgáltatásból leküldett adatfrissítésre is.
Séma és típusok
Az API Managementben adjon hozzá egy GraphQL API-t egy GraphQL-sémából, amelyet vagy egy háttérbeli GraphQL API-végpontról kér le, vagy ön tölt fel. A GraphQL-séma a következőket írja le:
- Adatobjektum-típusok és mezők, amelyeket az ügyfelek a GraphQL API-ból kérhetnek le.
- Az adatokon engedélyezett művelettípusok, például lekérdezések.
- Egyéb típusok, például egyesítők és interfészek, amelyek további rugalmasságot és szabályozást biztosítanak az adatok felett.
A felhasználói adatok egyszerű GraphQL-sémája és az összes felhasználó lekérdezése például a következőhöz hasonlóan nézhet ki:
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
Műveleti típusok
Az API Management a Következő művelettípusokat támogatja a GraphQL-sémákban. Ezekről a művelettípusokról további információt a GraphQL specifikációja tartalmaz.
Lekérdezés: Adatokat kérdez le, hasonlóan a
GETREST-műveletekhez.Mutáció: Módosítja a kiszolgálóoldali adatokat, hasonlóan a
PUTREST-hez vagyPATCHművelethez.Előfizetés: Lehetővé teszi a feliratkozott ügyfelek valós idejű értesítését a GraphQL szolgáltatás adatainak változásairól.
Ha például egy GraphQL-mutáción keresztül módosítják az adatokat, az előfizetett ügyfelek automatikusan értesülhetnek a változásról.
Fontos
Az API Management a graphql-ws WebSocket protokoll használatával implementált előfizetéseket támogatja. A lekérdezések és a mutációk nem támogatottak a WebSocketen keresztül.
Egyéb típusok
Az API Management támogatja a unió és felület típusokat a GraphQL-sémákban.
Feloldók
A feloldók gondoskodnak a GraphQL-séma háttéradatokra való leképezéséről, így egy objektumtípus egyes mezőinek adatait állítják elő. Az adatforrás lehet EGY API, egy adatbázis vagy egy másik szolgáltatás. Például egy feloldófüggvény felel az előző példában szereplő lekérdezés adatainak users visszaadásáért.
Az API Managementben létrehozhat egy feloldót egy objektumtípus mezőinek háttéradatforráshoz való leképezéséhez. A szintetikus GraphQL API-sémák mezőihez konfigurálhat feloldókat, de konfigurálhatja őket úgy is, hogy felülbírálják az átmenő GraphQL API-k által használt alapértelmezett mezőfeloldókat.
Az API Management jelenleg a HTTP API-n, Cosmos DB-n és Azure SQL-adatforrásokon alapuló feloldókat támogatja a GraphQL-sémák mezőinek adatainak visszaadásához. Minden feloldó testreszabott szabályzattal van konfigurálva az adatforráshoz való csatlakozáshoz és az adatok lekéréséhez:
| Adatforrás | Feloldó szabályzat |
|---|---|
| HTTP-alapú adatforrás (REST vagy SOAP API) | http-adatforrás |
| Cosmos DB-adatbázis | cosmosdb-data-source |
| Azure SQL-adatbázis | SQL-adatforrás |
Az előző users lekérdezéshez tartozó, HTTP API-alapú feloldó például egy GET műveletre lehet leképezve egy backend REST API-ban.
<http-data-source>
<http-request>
<set-method>GET</set-method>
<set-url>https://myapi.contoso.com/api/users</set-url>
</http-request>
</http-data-source>
A feloldó beállításáról további információt a GraphQL-feloldó konfigurálása című témakörben talál.
GraphQL API-k kezelése
- A GraphQL API-k védelme a meglévő hozzáférés-vezérlési szabályzatok és a GraphQL-érvényesítési szabályzatok alkalmazásával a GraphQL-specifikus támadások elleni védelem és védelem érdekében.
- Ismerje meg a GraphQL-sémát, és futtasson tesztlekérdezéseket a GraphQL API-kon az Azure-ban és a fejlesztői portálokon.