Udostępnij za pomocą


Język GraphQL na platformie Azure dla deweloperów języka JavaScript

Narzędzie GraphQL ułatwia aplikacjom JavaScript pobieranie dokładnie potrzebnych danych za pomocą jednego żądania. W tym artykule wyjaśniono, czym jest graphQL, dlaczego można go używać i jak usługi platformy Azure mogą pomóc w tworzeniu aplikacji GraphQL przy minimalnym nakładzie pracy. Niezależnie od tego, czy migrujesz istniejącą aplikację GraphQL, czy tworzysz nową, platforma Azure udostępnia narzędzia i usługi, aby uprościć proces.

Co to jest GraphQL?

GraphQL to nowoczesny sposób komunikacji aplikacji internetowej z serwerami i bazami danych. Pomyśl o tym jako inteligentniejszy sposób żądania dokładnie potrzebnych informacji:

  • To jak zamawianie niestandardowego posiłku zamiast akceptowania stałego menu - pytasz o dokładnie to, co chcesz
  • Działa dobrze w przypadku aplikacji JavaScript, takich jak React, Vue lub Angular
  • Może to przyspieszyć i ułatwić tworzenie aplikacji internetowych

Zamiast wykonywać wiele żądań do różnych punktów końcowych serwera (na przykład w przypadku tradycyjnych interfejsów API REST — standardowy sposób komunikacji większości usług internetowych), narzędzie GraphQL umożliwia wykonanie jednego dokładnego żądania w celu pobrania wszystkich potrzebnych danych.

Dlaczego chcę używać języka GraphQL w mojej aplikacji internetowej?

Narzędzie GraphQL sprawia, że aplikacje JavaScript są lepsze na trzy główne sposoby:

  • Uzyskaj dokładnie to, czego potrzebujesz: Twoja aplikacja może poprosić o tylko potrzebne dane — nie więcej, a nie mniej. To jest jak pójście do bufetu i zabranie tylko tego, co zjesz, zamiast być serwowanym gigantycznym stałym posiłkiem, gdzie większość się marnuje. Dzięki temu aplikacja jest szybsza, ponieważ pobiera mniej danych.

  • Jedno żądanie zamiast wielu: Potrzebujesz informacji z wielu miejsc? Zamiast wykonywać 5 różnych żądań do 5 różnych punktów końcowych, narzędzie GraphQL umożliwia wykonanie tylko jednego żądania w celu uzyskania wszystkiego. To jest jakby jedna osoba zbierała wszystkie twoje zakupy, zamiast żebyś chodził do pięciu różnych sklepów.

  • Mniej błędów z lepszymi narzędziami: GraphQL oferuje narzędzia, które pomagają w wykrywaniu błędów podczas kodowania, zamiast podczas uruchamiania aplikacji. To tak, jakby mieć sprawdzanie pisowni, które działa podczas pisania, zamiast odkrywać literówki po opublikowaniu dokumentu.

Podczas kompilowania przy użyciu języków GraphQL i JavaScript prawdopodobnie użyjesz jednego z następujących popularnych narzędzi:

  • Klient Apollo: najczęściej używany klient GraphQL, który współpracuje z oprogramowaniem React, Vue, Angular i zwykłym kodem JavaScript.
  • URQL: uproszczona alternatywa z dobrą wydajnością.
  • Relay: Utworzone przez Facebooka (który również utworzył GraphQL), najlepsze dla dużych aplikacji React.

Usługi platformy Azure dla aplikacji GraphQL

Wybierz swoje podejście na podstawie konkretnego scenariusza:

Jeśli chcesz... Następnie należy... Korzystanie z tych usług platformy Azure
Przenoszenie istniejącej aplikacji GraphQL na platformę Azure Wdrażanie aplikacji bez zmieniania kodu Azure App Service lub Azure Container Apps
Dodawanie języka GraphQL do istniejących danych Utwórz punkty końcowe GraphQL dla swoich danych przy minimalnym kodowaniu Konstruktor interfejsu API danych
Tworzenie warstwy interfejsu API GraphQL Tworzenie ujednoliconego interfejsu GraphQL za pośrednictwem istniejących interfejsów API Usługa Azure API Management z przekształceniem GraphQL

Hostowanie aplikacji GraphQL na platformie Azure

Istnieje kilka dobrych opcji w zależności od typu kompilowania aplikacji:

  • App Service: jest to jak tradycyjna usługa hostingu internetowego, ale z dodatkowymi funkcjami. Doskonale sprawdza się w przypadku większości aplikacji JavaScript, które potrzebują serwera.

  • Container Apps: jeśli aplikacja jest spakowana w kontenerach (takich jak Platforma Docker), ta usługa ułatwia ich uruchamianie i skalowanie.

Magazyn danych dla aplikacji GraphQL

Narzędzie GraphQL musi nawiązać połączenie z danymi. Platforma Azure oferuje kilka sposobów, aby to zrobić:

  • Przekształcanie bazy danych w interfejs API GraphQL: narzędzie "Konstruktor interfejsu API danych" może automatycznie utworzyć punkt końcowy graphQL (adres URL, pod którym aplikacja może wysyłać żądania GraphQL) z istniejącej bazy danych — nie jest wymagane kodowanie.

  • Przechowywanie danych: platforma Azure oferuje bazy danych dla różnych potrzeb:

    • SQL Database: w przypadku tradycyjnych danych opartych na tabelach
    • Cosmos DB: w przypadku elastycznego, skalowalnego magazynu danych bez sztywnych schematów

Zabezpieczanie aplikacji GraphQL

  • Logowanie użytkownika i zabezpieczenia: platforma tożsamości platformy Azure ułatwia dodawanie funkcji logowania do aplikacji, dzięki czemu tylko odpowiednie osoby mogą uzyskiwać dostęp do danych graphQL.
  • Dostęp oparty na rolach: określ dokładnie, którzy użytkownicy mogą wykonywać zapytania o dane lub modyfikować je za pośrednictwem punktów końcowych graphQL.
  • Ochrona interfejsu API: dodaj ograniczanie szybkości i monitorowanie, aby zapobiec nadużyciom interfejsów API graphQL.

Tworzenie interfejsów API języka GraphQL dla istniejących danych

Masz już dane na platformie Azure i chcesz uzyskać do niej dostęp za pomocą języka GraphQL? Istnieją proste sposoby, aby to zrobić:

  • API Management: ta usługa może utworzyć warstwę GraphQL przed istniejącymi interfejsami API lub źródłami danych. To jak dodanie translatora GraphQL do systemów, które nie obsługują natywnie GraphQL.

  • Konstruktor interfejsu API danych: to narzędzie automatycznie tworzy punkty końcowe GraphQL z baz danych. Jest to najszybszy sposób dodania GraphQL do istniejących danych — wystarczy wskazać na bazę danych, a system wykona resztę pracy za Ciebie.

Prosty przykład: Tworzenie interfejsu API GraphQL dla bazy danych produktu

Oto jak działa proces w prosty sposób:

  1. Masz bazę danych z informacjami o produkcie (nazwy, ceny, opisy)
  2. Skonfigurowano narzędzie Data API Builder do połączenia z bazą danych
  3. Data API Builder automatycznie tworzy punkt końcowy dla GraphQL.
  4. Aplikacja JavaScript może teraz tworzyć zapytania GraphQL, takie jak:
{
  products(where: { price_lt: 50 }) {
    name
    price
    description
  }
}

To zapytanie spowoduje pobranie wszystkich produktów poniżej 50 USD, pokazujących tylko ich nazwy, ceny i opisy.

Zasoby ułatwiające rozpoczęcie pracy

Jeśli chcesz dowiedzieć się więcej lub rozpocząć tworzenie za pomocą języka GraphQL na platformie Azure, oto kilka przydatnych zasobów:

Dalsze kroki