Blog

⭐️ Application Passwords desteği, WordPress multisite uyumluluğu ve sayfalar için mutations ile v2.4 yayınlandı

Leonardo Losoviz
Yazan: Leonardo Losoviz ·

Gato GraphQL v2.4, çeşitli iyileştirmeler ve hata düzeltmeleriyle yayınlandı.

Application Passwords Desteği

Artık GraphQL endpoint'ine kimliği doğrulanmış bir istek göndermek için WordPress Application Passwords kullanmak mümkün.

Örneğin, USERNAME ve PASSWORD değerlerini değiştirerek GraphQL sunucusuna karşı curl komutunu çalıştırırken application password'ü geçirebiliriz:

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

Gato GraphQL PRO kullanılırken, yeni eklenen _strBase64Encode alanı sayesinde başka bir WordPress sitesine karşı kimliği doğrulanmış HTTP istekleri göndermek için GraphQL kullanabiliriz.

Aşağıdaki query, kullanıcı adını ve application password'ü (ve bağlanılacak endpoint'i) alır, gerekli kimlik doğrulama başlığını ("Basic base64encoded(username:password)" türünde) oluşturur ve çalıştırılacak GraphQL query'sini geçerek GraphQL sunucusuna bir HTTP isteği gönderir:

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
        }
      ]
    }
  })
}

WordPress Multisite ile Uyumluluk

Gato GraphQL'i bir WordPress Multisite ağıyla uyumlu hale getirmek için çeşitli sorunlar giderildi.

Artık tüm multisite'ı yönetmek için tek bir Gato GraphQL PRO lisansını etkinleştirmek mümkün.

Gato GraphQL'in WordPress Multisite ağına dayalı çok dilli bir sitedeki tüm sayfaların çevrilmesine yardımcı olduğu Translating pages on a Multilingual site based on WordPress Multisite demo videosunu izleyin:

GraphQL şemasına sayfa mutations'ları eklendi

GraphQL şemasına aşağıdaki mutations eklendi:

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

Örneğin, artık bir sayfayı değiştirmek için şu GraphQL query'sini çalıştırabilirsiniz:

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
    }
  }
}

Oturum açmış kullanıcının sayfalarını almak için alanlar eklendi

v2.4 ayrıca oturum açmış kullanıcının sayfalarını almak için alanlar ekler.

Daha önce var olan Root.page, Root.pages ve Root.pageCount alanları herhangi bir kullanıcının sayfalarını alır; ancak yalnızca herkese açık olanları (yani "publish" durumuyla olanları).

Bu sürümden itibaren, şu yeni alanları kullanarak oturum açmış kullanıcının herkese açık veya özel sayfalarını (yani "publish", "pending", "draft" veya "trash" durumuyla olanları) alabiliriz:

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

Sitenin yerel ayarını ve dilini almak için alanlar eklendi

GraphQL şemasına aşağıdaki alanlar eklendi:

  • Root.siteLocale
  • Root.siteLanguage

Örneğin, aşağıdaki query çalıştırıldığında:

{
  siteLocale
  siteLanguage
}

...şu sonuç üretilebilir:

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

Bu alanlar yeni "Site" modülü aracılığıyla sağlanmaktadır. Bu modülün devre dışı bırakılması, alanları GraphQL şemasından kaldıracaktır.

İyileştirmeler ve düzeltmeler

  • "Internal" özel private custom endpoint kurulumu (#2684)
  • Yeni PRO alanı _strBase64Encode için belge eklendi (#2673)
  • Uzantılar gatographql.com'daki Extensions Reference'a bağlandı (#2675)
  • Hakkında sayfasına YouTube kanal bağlantısı eklendi (#2676)
  • Önceden tanımlanmış persisted queries eklendi:
    • [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)
  • Uzantılar vurgulandı ve web sitesini ziyaret etmek için bağlantı etkinleştirildi (#2674)
  • GraphiQL istemcisi (LocalWP için) artık site URL'sini endpoint olarak kullanıyor (#2686)
  • Int beklenirken string geçilmesinden kaynaklanan dahili sunucu hatası (v2.4.1)

Bültenimize abone olun

Gato GraphQL'deki tüm güncellemelerden haberdar olun.