Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO: Všechny úrovně služby API Management
Službu API Management můžete použít ke správě rozhraní GraphQL API, což jsou rozhraní API založená na dotazovacím jazyku GraphQL. GraphQL poskytuje úplný a srozumitelný popis dat v rozhraní API a poskytuje klientům možnost efektivně načítat přesně potřebná data. Přečtěte si další informace o GraphQL.
API Management pomáhá importovat, spravovat, chránit, testovat, publikovat a monitorovat rozhraní GraphQL API. Můžete zvolit jeden ze dvou modelů rozhraní API:
| Průchozí GraphQL | Syntetický GraphQL |
|---|---|
| ▪️ Průchozí API pro existující koncový bod služby GraphQL ▪️ Podpora dotazů GraphQL, mutací a předplatných |
▪️ Rozhraní API založené na vlastním schématu GraphQL ▪️ Podpora dotazů GraphQL, mutací a předplatných ▪️ Konfigurace vlastních resolverů, například pro HTTP datové zdroje ▪️ Vývoj schémat GraphQL a klientů založených na GraphQL při využívání dat ze starších rozhraní API ▪️ Syntetická předplatná nevyžadují řešitele. Viz zásady publikování událostí. |
Dostupnost
- Rozhraní GraphQL API jsou podporovaná ve všech úrovních služby API Management.
- Syntetická rozhraní API GraphQL se v současné době nepodporují v pracovních prostorech služby API Management.
- Podpora předplatných GraphQL v syntetických rozhraních GraphQL API je aktuálně ve verzi Preview a není dostupná na úrovni Consumption.
Co je GraphQL?
GraphQL je opensourcový standardní dotazovací jazyk pro rozhraní API. Na rozdíl od rozhraní REST API navržených pro akce nad prostředky podporují rozhraní GraphQL API širší sadu případů použití a zaměřují se na datové typy, schémata a dotazy.
Specifikace GraphQL explicitně řeší běžné problémy, ke kterým dochází u klientských webových aplikací, které spoléhají na rozhraní REST API:
- Pro splnění potřeb dat pro jednu stránku může být zapotřebí velký počet požadavků.
- Rozhraní REST API často vrací více dat, než je potřeba při vykreslení stránky.
- Klientská aplikace se musí dotazovat, aby získala nové informace.
Pomocí rozhraní GraphQL API může klientská aplikace zadat data, která potřebuje k vykreslení stránky v dokumentu dotazu, který se odešle jako jeden požadavek do služby GraphQL. Klientská aplikace se může také přihlásit k odběru aktualizací dat nabízených ze služby GraphQL v reálném čase.
Schéma a typy
Ve službě API Management přidejte rozhraní GraphQL API ze schématu GraphQL buď načtené z back-endového koncového bodu rozhraní GraphQL API, nebo nahrané vámi. Schéma GraphQL popisuje:
- Datové typy a pole, která klienti mohou požadovat z rozhraní GraphQL API.
- Typy operací povolené pro data, jako jsou dotazy.
- Další typy, jako jsou sjednocení a rozhraní, poskytují větší flexibilitu a kontrolu nad daty.
Například základní schéma GraphQL pro uživatelská data a dotaz pro všechny uživatele může vypadat takto:
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
Typy operace
Služba API Management podporuje následující typy operací ve schématech GraphQL. Další informace o těchto typech operací najdete ve specifikaci GraphQL.
Dotaz: Načte data, podobně jako
GEToperace v REST.Mutace: Upraví data na straně serveru, podobně jako operace
PUTneboPATCHv rámci REST.Předplatné: Umožňuje upozorňovat předplacené klienty v reálném čase o změnách dat ve službě GraphQL.
Když se například data upraví prostřednictvím mutaci GraphQL, můžou být přihlášení klienti k odběru automaticky upozorněni na změnu.
Důležité
API Management podporuje předplatná implementovaná pomocí protokolu Graphql-ws WebSocket. Dotazy a mutace nejsou podporovány přes WebSocket.
Další typy
API Management podporuje typy union a rozhraní ve schématech GraphQL.
Řešitelé
Resolvery se starají o mapování schématu GraphQL na backendová data, čímž vytvářejí data pro každé pole v typu objektu. Zdrojem dat může být rozhraní API, databáze nebo jiná služba. Například funkce překladače odpovídá za vrácení dat pro users dotaz v předchozím příkladu.
Ve službě API Management můžete vytvořit resolver pro mapování pole v typu objektu na datový zdroj backendu. Konfigurujete resolvery pro pole v syntetických schématech rozhraní GraphQL API, ale můžete je také nakonfigurovat tak, aby přetížily výchozí resolvery polí používané průchozymi rozhraními GraphQL API.
SLUŽBA API Management v současné době podporuje resolvery založené na zdrojích dat HTTP API, Cosmos DB a Azure SQL, aby vrátila data pro pole ve schématu GraphQL. Každý překladač je nakonfigurovaný pomocí přizpůsobených zásad pro připojení ke zdroji dat a načtení dat:
| Zdroj dat | Zásady řešitele |
|---|---|
| Zdroj dat založený na HTTP (REST nebo SOAP API) | zdroj-dat-http |
| Databázi Cosmos DB | cosmosdb-data-source |
| databáze Azure SQL | zdroj dat SQL |
Například resolver používající HTTP API pro předchozí users dotaz může mapovat na GET operaci v backendovém rozhraní REST API.
<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>
Další informace o nastavení překladače najdete v tématu Konfigurace překladače GraphQL.
Správa rozhraní GraphQL API
- Zabezpečení rozhraní GraphQL API pomocí stávajících zásad řízení přístupu a zásad ověřování GraphQL k zabezpečení a ochraně před útoky specifickými pro GraphQL
- Prozkoumejte schéma GraphQL a spusťte testovací dotazy na rozhraní GraphQL API na portálech Azure a pro vývojáře.