Blog

⭐️ Wydano v2.4 z obsługą Application Passwords, kompatybilnością z WordPress multisite i mutacjami dla stron

Leonardo Losoviz
Autor: Leonardo Losoviz ·

Gato GraphQL v2.4 zostało wydane z wieloma usprawnieniami i poprawkami błędów.

Obsługa Application Passwords

Teraz możliwe jest używanie Application Passwords WordPressa do wysyłania uwierzytelnionego żądania do endpointu GraphQL.

Na przykład możemy przekazać application password podczas wykonywania polecenia curl przeciwko serwerowi GraphQL, zastępując wartości USERNAME i PASSWORD:

curl -i \
  --user "USERNAME:PASSWORD" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"query": "{ me { name } }"}' \
  https://mysite.com/graphql

Używając Gato GraphQL PRO, dzięki nowemu polu _strBase64Encode, możemy użyć GraphQL do wykonywania uwierzytelnionych żądań HTTP przeciwko innemu serwisowi WordPress.

Poniższe query otrzymuje nazwę użytkownika i application password (oraz endpoint, z którym ma się połączyć), tworzy wymagany nagłówek uwierzytelniania (typu "Basic base64encoded(username:password)") i wysyła żądanie HTTP do serwera GraphQL, przekazując query GraphQL do wykonania:

query GetDataFromExternalWPSite(
  $username: String!
  $appPassword: String!
  $endpoint: URL!
) {
  loginCredentials: _sprintf(
    string: "%s:%s",
    values: [$username, $appPassword]
  )
    @remove
 
  base64EncodedLoginCredentials: _strBase64Encode(
    string: $__loginCredentials
  )
    @remove
 
  loginCredentialsHeaderValue: _sprintf(
    string: "Basic %s",
    values: [$__base64EncodedLoginCredentials]
  )
    @remove
 
  externalHTTPRequestWithUserPassword: _sendGraphQLHTTPRequest(input:{
    endpoint: $endpoint,
    query: """
  
{
  me {
    name
  }
}
 
    """,
    options: {
      headers: [
        {
          name: "Authorization",
          value: $__loginCredentialsHeaderValue
        }
      ]
    }
  })
}

Kompatybilność z WordPress Multisite

Naprawiono kilka problemów, aby uczynić Gato GraphQL kompatybilnym z siecią WordPress Multisite.

Teraz możliwe jest aktywowanie jednej licencji Gato GraphQL PRO do obsługi całej sieci multisite.

Obejrzyj film demonstracyjny Translating pages on a Multilingual site based on WordPress Multisite, w którym Gato GraphQL pomaga tłumaczyć wszystkie strony w wielojęzycznym serwisie opartym na sieci WordPress Multisite:

Dodano mutacje dla stron do schematu GraphQL

Do schematu GraphQL dodano następujące mutacje:

  • Root.createPage
  • Root.updatePage
  • Page.update

Na przykład możesz teraz wykonać to query GraphQL, aby zmodyfikować stronę:

mutation UpdatePage {
  updatePage(input: {
    id: 2
    title: "Updated title"
    contentAs: { html: "Updated content" },
    status: pending
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    page {
      id
      rawTitle
      rawContent
      status
    }
  }
}

Dodano pola do pobierania stron zalogowanego użytkownika

v2.4 dodaje również pola do pobierania stron zalogowanego użytkownika.

Dotychczas istniejące pola Root.page, Root.pages i Root.pageCount pobierają strony dla dowolnego użytkownika, ale tylko te publiczne (tj. ze statusem "publish").

Od tej wersji możemy pobierać publiczne lub prywatne strony zalogowanego użytkownika (tj. ze statusem "publish", "pending", "draft" lub "trash"), używając tych nowych pól:

  • Root.myPage
  • Root.myPages
  • Root.myPageCount
query {
  myPages(filter: { status: [draft, pending] }) {
    id
    title
    status
  }
}

Dodano pola do pobierania locale i języka serwisu

Do schematu GraphQL dodano następujące pola:

  • Root.siteLocale
  • Root.siteLanguage

Na przykład wykonanie następującego query:

{
  siteLocale
  siteLanguage
}

...może zwrócić:

{
  "data": {
    "siteLocale": "en_US",
    "siteLanguage": "en"
  }
}

Pola te są dostarczane przez nowy moduł "Site". Wyłączenie tego modułu spowoduje usunięcie pól ze schematu GraphQL.

Usprawnienia i poprawki

  • Instalacja "wewnętrznego" prywatnego custom endpointu (#2684)
  • Dodano dokumentację dla nowego pola PRO _strBase64Encode (#2673)
  • Powiązanie rozszerzeń z Extensions Reference na gatographql.com (#2675)
  • Dodano link do kanału YouTube na stronie O nas (#2676)
  • Dodano predefiniowane zapisane queries:
    • [PRO] Translate and create all pages for a multilingual site (Multisite / Gutenberg) (#2688)
    • [PRO] Translate and create all pages for a multilingual site (Multisite / Classic editor) (#2688)
  • Wyróżnianie rozszerzeń i włączenie linku do odwiedzenia na stronie (#2674)
  • Klient GraphiQL (dla LocalWP) używa teraz adresu URL serwisu jako endpointu (#2686)
  • Wewnętrzny błąd serwera przy przekazaniu ciągu znaków, gdy oczekiwana była liczba całkowita (v2.4.1)

Zapisz się do naszego newslettera

Bądź na bieżąco ze wszystkimi aktualizacjami Gato GraphQL.