GraphQL.cz/Články/GraphQL a více zdrojů dat

Integrace REST API s GraphQL: Jak na to bez problémů?

Průvodce pro vývojáře, kteří chtějí úspěšně integrovat existující REST API do nového GraphQL serveru. Naučte se krok za krokem, jak na to!

719 slov
7.2 minut čtení
9. 5. 2020
Marek Dvořák

Úvod: Proč se zabývat integrací REST API s GraphQL?

Když se podíváme na současný svět webového vývoje, je jasné, že se technologie velmi rychle mění. REST API byla dlouho králem v oblasti komunikace mezi klientem a serverem, ale v posledních letech se na scénu dostal GraphQL, který nabízí nové možnosti a flexibilitu. Pokud jste vývojář nebo někdo, kdo pracuje ve světě technologií, určitě jste slyšeli o GraphQL a jeho schopnostech. Ale co když máte již zavedené REST API a chcete ho propojit s novým GraphQL serverem? To je to, co si dnes ukážeme! V tomto článku vám přineseme krok za krokem průvodce, jak bez problémů integrovat vaše REST API s GraphQL.

Co je REST API a jak funguje?

REST (Representational State Transfer) je architektonický styl pro návrh síťových aplikací. Umožňuje komunikaci mezi klientem a serverem pomocí HTTP protokolů. REST API poskytuje standardní konvence pro práci s daty a obvykle vrací odpovědi ve formátu JSON nebo XML. Klienti posílají požadavky na určité URL adresy, které odpovídají různým zdrojům dat.

Co je GraphQL?

GraphQL je dotazovací jazyk pro API, který byl vyvinut společností Facebook. Na rozdíl od REST API umožňuje klientům definovat strukturu dat, která potřebují, což může vést k efektivnějšímu načítání dat a snížení množství zbytečných požadavků. S GraphQL můžete získat přesně to, co potřebujete – žádné další nebo chybějící informace.

Proč integrovat REST API do GraphQL?

Jednou z hlavních výhod integrace vaší stávající architektury s GraphQL je zjednodušení správy dat. Místo toho abyste museli spravovat různé koncové body pro různé požadavky, GraphQL umožňuje sjednotit tyto požadavky do jednoho místa. To znamená méně kódu a údržby.

Ale pojďme na to! Jak tedy začít? Pojďme se podívat na jednotlivé kroky integrace REST API do GraphQL.

Krok 1: Identifikace zdrojů

Než se pustíme do vlastního kódování, musíme nejprve analyzovat naše stávající REST API. Udělejte si seznam všech koncových bodů a zjistěte, jaké údaje tyto koncové body vracejí. Toto je dobrý okamžik k tomu, abyste si ujasnili, které zdroje chcete mít dostupné prostřednictvím GraphQL.

Krok 2: Nastavení GraphQL serveru

Pro integraci budete potřebovat vytvořit nový GraphQL server nebo použít existující framework jako Apollo Server nebo Express-GraphQL. Tento server bude zpracovávat dotazy z vašeho klienta a předávat je do REST API. Pokud se rozhodnete použít Apollo Server, instalace je velmi jednoduchá pomocí npm:

npm install apollo-server graphql

Po instalaci můžete nastavit základní strukturu vašeho serveru:

const \{ ApolloServer, gql \} = require('apollo-server');
const typeDefs = gql`
  type Query \{
    hello: String
  \}
`;
const server = new ApolloServer(\{ typeDefs \});
server.listen().then((\{ url \}) =\> \{
  console.log(`🚀 Server ready at $\{url\}`);
\});

Toto je jen základní příklad, ale hned vidíte, jak snadné je nastavit server!

Krok 3: Vytvoření schématu

Nyní musíte vytvořit schéma pro váš GraphQL server. Schéma definuje strukturu vašich dat a operací (dotazů a mutací), které klienti mohou provádět. Například:

type Post \{
  id: ID!
  title: String!
  body: String!
\}
type Query \{
  posts: [Post]
\}

Toto schéma definuje typ Post a dotaz posts, který vrátí seznam příspěvků.

Krok 4: Sběr dat z REST API

Teď přichází klíčová část – získání dat z vašeho stávajícího REST API pomocí HTTP požadavků. Můžete k tomu použít knihovny jako Axios nebo Fetch API. Například:

const axios = require('axios');
action getPosts() \{
  return axios.get('https://api.example.com/posts')
    .then(response =\> response.data);
\}
schema.Query.posts = () =\> getPosts();

V tomto příkladu získáváme všechny příspěvky z našeho REST API a předáváme je dál do našeho GraphQL schématu.

Krok 5: Testování vašeho serveru

Jakmile máte nastaveno schéma a resolvery (funkce pro získávání dat), můžete začít testovat váš GraphQL server! Existuje mnoho nástrojů jako Postman nebo GraphiQL, které vám umožní posílat dotazy na váš server a ověřit si, že vše funguje tak, jak má. Například můžete poslat dotaz:

\{
  posts \{
    id,
title,
dody
  \}
\}

a očekávat odpověď s daty vašich příspěvků.

Krok 6: Optimalizace výkonu

Jakmile vše funguje správně, zaměřte se na optimalizaci výkonu vašeho serveru. Můžete implementovat caching (například pomocí Redis), abyste snížili zatížení na vaše REST API a zrychlili odezvu vašeho GraphQL serveru.

Závěr

Integrace stávajícího REST API do nového GraphQL serveru může být skvělým způsobem, jak zmodernizovat vaše aplikace bez nutnosti přepracování celého backendu. Jak vidíte, proces není zas tak složitý – stačí mít po ruce správné nástroje a trochu trpělivosti. Pokud vás téma zajímá více nebo máte další otázky ohledně GraphQL nebo REST API, neváhejte nás sledovat na našem blogu GraphQL.cz! Přinášíme pravidelně nové články o trendech ve vývoji webových aplikací a technologiích!

31013 přečtení článku
393 lajků
9. 5. 2020
Marek Dvořák
  • REST API

  • GraphQL

  • integrace

  • vývojářský průvodce

  • API architektura

  • dotazovací jazyk

  • Apollo Server

  • optimizace výkonu

  • backend

O autorovi

Marek Dvořák

Profesionální zvukový inženýr s více než 15letou praxí v oboru. Vystudoval Fakultu elektrotechnickou ČVUT se specializací na akustiku a zpracování signálů. Po studiích působil v několika nahrávacích studiích v Praze, kde se podílel na řadě významných hudebních projektů. Od roku 2012 se věnuje především postprodukci zvuku pro film a televizi. Je certifikovaným školitelem programu Audacity a dalších DAW systémů. Na webu Audacity.cz působí od jeho založení jako hlavní technický redaktor a expert na pokročilé techniky zpracování zvuku. Ve volném čase komponuje elektronickou hudbu a věnuje se zvukovému designu pro nezávislé filmové projekty. Je pravidelným přispěvatelem do odborných časopisů o zvukové technice a lektorem workshopů zaměřených na práci se zvukem.

Dotazy k článku