Tworzenie API
Tworzenie APITworzenie utrwalonego zapytania

Tworzenie utrwalonego zapytania

Utrwalone zapytanie to połączenie API GraphQL i REST: jest to zwykłe zapytanie GraphQL, opublikowane na stronie i dostępne pod własnym adresem URL, podobnie jak endpoint REST.

Na przykład możemy udostępnić dane witryny za pomocą następujących utrwalonych zapytań:

  • /graphql-query/homepage-posts
  • /graphql-query/user-widget
  • /graphql-query/post-content i wykonać je, przekazując ID posta: ?post=1
  • /graphql-query/post-content/es aby przetłumaczyć treść posta na język hiszpański
  • Inne

Edytor utrwalonych zapytań

Wykonywanie utrwalonego zapytania

Po opublikowaniu utrwalonego zapytania możemy je wykonać za pomocą jego permalinku.

Utrwalone zapytanie można wykonać bezpośrednio w przeglądarce, ponieważ jest ono dostępne via GET, a my otrzymamy żądane dane w formacie JSON:

Wykonywanie utrwalonego zapytania w przeglądarce

Wykonywanie utrwalonego zapytania w aplikacji

Postępuj zgodnie z instrukcjami w przewodniku Łączenie się z serwerem GraphQL z poziomu klienta.

Dostęp do wszystkich utrwalonych zapytań

Po kliknięciu "Persisted Queries" w menu wtyczki wyświetlana jest lista wszystkich utworzonych utrwalonych zapytań:

Utrwalone zapytania w panelu administracyjnym
Utrwalone zapytania w panelu administracyjnym

Tworzenie nowego utrwalonego zapytania

Kliknij przycisk "Add New GraphQL persisted query", aby otworzyć edytor WordPress:

Tworzenie utrwalonego zapytania

Nadaj mu tytuł i upewnij się, że permalink jest właściwy, wprowadź zapytanie GraphQL, wybierz konfigurację schematu i dostosuj opcje. Gdy będzie gotowe, kliknij przycisk Opublikuj, a permalink staje się endpointem utrwalonego zapytania.

Link do endpointu (i do źródła) jest wyświetlany w bocznym panelu "Persisted Query Endpoint Overview":

Persisted Query Endpoint Overview

Domyślnie endpoint utrwalonego zapytania ma ścieżkę /graphql-query/, a ta wartość jest konfigurowalna poprzez Ustawienia:

Ustawienia utrwalonych zapytań
Ustawienia utrwalonych zapytań

Edytor zapytań

Klient GraphiQL w edytorze służy do wprowadzania utrwalonego zapytania GraphQL:

Klient GraphiQL utrwalonego zapytania

Edytor jest wyposażony w dodatek Explorer, który umożliwia tworzenie zapytania poprzez klikanie pól w lewym panelu bocznym. Kliknięcie przycisku "Run" wykonuje zapytanie, aby wyświetlić podgląd odpowiedzi:

Tworzenie utrwalonego zapytania za pomocą Explorera

Konfiguracja schematu

Określenie, kto może uzyskać dostęp do pól żądanych w utrwalonym zapytaniu, jest zdefiniowane w konfiguracji schematu.

Dlatego musimy utworzyć konfigurację schematu, a następnie wybrać ją z listy rozwijanej (lub nie używać żadnej, albo użyć domyślnej):

Wybieranie konfiguracji schematu

Prywatne utrwalone zapytania

Ustawiając status utrwalonego zapytania jako prywatne, endpoint będzie dostępny tylko dla użytkownika administratora. Zapobiega to niezamierzonemu udostępnieniu naszych danych użytkownikom, którzy nie powinni mieć do nich dostępu.

Na przykład możemy tworzyć prywatne utrwalone zapytania, które pomagają zarządzać aplikacją, takie jak pobieranie danych do tworzenia raportów z naszymi metrykami.

Prywatne utrwalone zapytanie

Utrwalone zapytania chronione hasłem

Jeśli tworzymy utrwalone zapytanie dla konkretnego klienta, możemy przypisać do niego hasło, aby zapewnić dodatkowy poziom bezpieczeństwa, gwarantując że tylko ten klient będzie miał dostęp do endpointu.

Utrwalone zapytanie chronione hasłem

Przy pierwszym dostępie do utrwalonego zapytania chronionego hasłem natrafiamy na ekran z prośbą o podanie hasła:

Utrwalone zapytanie chronione hasłem: pierwszy dostęp

Po podaniu i zweryfikowaniu hasła dopiero wtedy użytkownik uzyska dostęp do żądanego endpointu.

Uczynienie utrwalonego zapytania dynamicznym za pomocą parametrów URL

Wartość każdej zmiennej można ustawić za pomocą parametru URL (z nazwą zmiennej) podczas wykonywania utrwalonego zapytania. Jeśli opcja "Do URL params override variables?" jest włączona, parametr URL będzie miał pierwszeństwo. W przeciwnym razie pierwszeństwo będzie miała wartość zdefiniowana w słowniku zmiennych (jeśli istnieje).

Na przykład w tym zapytaniu liczba wyników jest kontrolowana przez zmienną $limit, z domyślną wartością 3:

Używanie zmiennych w utrwalonych zapytaniach

Podczas wykonywania tego utrwalonego zapytania, przekazanie ?limit=5 spowoduje wykonanie zapytania zwracającego 5 wyników:

Zastępowanie wartości zmiennych w utrwalonych zapytaniach

Tworzenie hierarchii utrwalonych zapytań

Przeczytaj instrukcje dotyczące tworzenia hierarchii API.

Wyłączanie utrwalonego zapytania

W opcjach ustaw "Enabled" na false, aby wyłączyć utrwalone zapytanie.

Ta funkcja może być przydatna, gdy utrwalone zapytanie jest częścią hierarchii API, aby zapewnić wspólne zachowanie jego podrzędnym utrwalonym zapytaniom, bez konieczności jego samodzielnego wykonywania.

Opisywanie utrwalonego zapytania

Użyj pola "Excerpt" w panelu ustawień dokumentu, aby nadać opis utrwalonemu zapytaniu.

Więcej informacji znajdziesz w przewodniku Dodawanie opisu do API.

Testowanie utrwalonego zapytania przed opublikowaniem online

Utrwalone zapytanie ze statusem szkic lub oczekujące jest dostępne tylko dla użytkowników edytujących schemat.

Możemy więc utworzyć utrwalone zapytanie, przypisać mu Konfigurację Schematu, opublikować je jako szkic lub oczekujące i przetestować (np.: sprawdzając, czy jego reguły Kontroli Dostępu są odpowiednie).

Po zatwierdzeniu dopiero wtedy ustawiamy jego status jako opublikowane, udostępniając utrwalone zapytanie wszystkim.

Wyświetlanie źródła

Dodając ?view=source do endpointu, zostanie wyświetlona konfiguracja utrwalonego zapytania (o ile użytkownik jest zalogowany i jego rola ma do tego dostęp):

Źródło utrwalonego zapytania


Konfiguracja w edytorze WordPress

Oto pola w treści edytora:

PoleOpis
TytułTytuł utrwalonego zapytania
Klient GraphiQLEdytor do pisania i wykonywania zapytania GraphQL:
  • Napisz zapytanie w obszarze tekstowym
  • Zadeklaruj zmienne wewnątrz zapytania i zadeklaruj ich wartości w polu zmiennych na dole
  • Kliknij przycisk "Run", aby wykonać zapytanie
  • Uzyskaj wyniki w polu po prawej stronie
  • Kliknij "Docs", aby sprawdzić informacje o schemacie
Explorer (wyświetlany tylko jeśli moduł GraphiQL Explorer jest włączony) umożliwia klikanie pól, które są automatycznie dodawane do zapytania
Konfiguracja schematuZ listy rozwijanej wybierz konfigurację schematu mającą zastosowanie do utrwalonego zapytania lub jedną z tych opcji:
  • "Default": konfiguracja schematu jest tą wybraną w Ustawieniach wtyczki
  • "None": utrwalone zapytanie będzie nieograniczone
  • "Inherit from parent": użyj tej samej konfiguracji schematu co nadrzędne utrwalone zapytanie.
    Ta opcja jest dostępna, gdy moduł API Hierarchy jest włączony, a utrwalone zapytanie ma zapytanie nadrzędne (wybrane w ustawieniach dokumentu)
OpcjeDostosuj zachowanie utrwalonego zapytania:
  • Enabled?: Czy utrwalone zapytanie jest włączone.
    Przydatne jest wyłączenie utrwalonego zapytania, gdy jest ono zapytaniem nadrzędnym w hierarchii API
  • Do URL params override variables?: Zezwól parametrom URL na zastępowanie wartości zmiennych zdefiniowanych w kliencie GraphiQL
  • Inherit query from ancestor(s)?: Użyj tego samego zapytania co nadrzędne utrwalone zapytanie.
    Ta opcja jest dostępna, gdy moduł API Hierarchy jest włączony, a utrwalone zapytanie ma zapytanie nadrzędne (wybrane w ustawieniach dokumentu)

Oto pola w ustawieniach dokumentu:

PoleOpis
PermalinkEndpoint, pod którym będzie dostępne utrwalone zapytanie
KategorieUmożliwia kategoryzowanie utrwalonego zapytania.
Np.: mobile, app, itp.
ExcerptPodaj opis utrwalonego zapytania.
To pole jest dostępne, gdy moduł Excerpt as Description jest włączony
Atrybuty stronyWybierz nadrzędne utrwalone zapytanie.
To pole jest dostępne, gdy moduł API Hierarchy jest włączony