API Oluşturma
API OluşturmaÖzel endpoint oluşturma

Özel endpoint oluşturma

Tek endpoint'e ek olarak, Gato GraphQL aynı zamanda özel endpoint'leri de destekler; özelleştirilmiş bir şema (mevcut türlerin yalnızca bir alt kümesini içeren) ve kullanıcı doğrulama kuralları için veri almak ve göndermek amacıyla, farklı kullanıcıların ve uygulamaların ihtiyaçlarını karşılar.

İhtiyaç duyduğumuz kadar çok özel endpoint oluşturabiliriz.

Örneğin, şunlar için özel endpoint oluşturabiliriz:

  • Belirli bir istemci veya kullanıcı için, /graphql/my-client/ altında
  • Özelliklere daha fazla erişimi olan bir kullanıcı grubu için (PRO kullanıcılar gibi), /graphql/pro-users/ altında
  • Mobil uygulamamıza veri sağlamak için, /graphql/mobile-app/ altında
  • Bir üçüncü taraf API'ye erişim vermek için, /graphql/external-api/ altında
  • Diğerleri

Özel Endpoint editörü

Özel endpoint'i bir uygulamada çalıştırma

Lütfen bir istemciden GraphQL sunucusuna bağlanma kılavuzundaki talimatları izleyin.

Tüm özel endpoint'lere erişim

Eklentinin menüsünde "Custom Endpoints" seçeneğine tıklandığında, oluşturulan tüm özel endpoint'lerin listesi görüntülenir:

Yönetim panelinde Özel Endpoint'ler
Yönetim panelinde Özel Endpoint'ler

Yeni bir özel endpoint oluşturma

WordPress editörünü açmak için "Add New GraphQL endpoint" düğmesine tıklayın:

Yeni bir Özel Endpoint oluşturma

Bir başlık verin, kalıcı bağlantının istenen olduğundan emin olun, şema yapılandırmasını seçin ve seçenekleri ayarlayın. Hazır olduğunuzda Publish düğmesine tıklayın; özel endpoint, yapılandırılmış kalıcı bağlantı URL olarak kullanılarak oluşturulur.

Endpoint'e (ve kaynağa ve istemcilere) ait bağlantılar, "Custom Endpoint Overview" kenar çubuğu panelinde gösterilir:

Custom Endpoint Overview

Şema yapılandırması

Şemanın hangi öğeleri içerdiğini ve kullanıcıların ona hangi erişime sahip olacağını tanımlamak, şema yapılandırmasında belirlenir.

Bu nedenle bir şema yapılandırması oluşturmalı ve ardından açılır menüden seçmeliyiz (ya da hiçbirini kullanmayabilir ya da varsayılanı kullanabiliriz):

Şema yapılandırmasını seçme

Gizli endpoint'ler

Özel Endpoint'in durumu private olarak ayarlandığında, endpoint'e yalnızca yönetici kullanıcı erişebilir. Bu, verilerimizin erişim hakkı olmayan kullanıcılarla istemeden paylaşılmasını önler.

Örneğin, metriklerimizle raporlar oluşturmak amacıyla veri almak gibi uygulamayı yönetmeye yardımcı olan gizli Özel Endpoint'ler oluşturabiliriz.

Gizli Özel Endpoint

Şifreyle korunan endpoint'ler

Belirli bir istemci için Özel Endpoint oluşturduğumuzda, yalnızca o istemcinin endpoint'e erişeceğini garanti eden ek bir güvenlik katmanı sağlamak amacıyla bir şifre atayabiliriz.

Şifreyle korunan Özel Endpoint

Şifreyle korunan bir endpoint'e ilk kez erişildiğinde (endpoint'e doğrudan, ya da GraphiQL veya Interactive Schema istemcileri üzerinden erişilsin), şifre isteyen bir ekranla karşılaşılır:

Şifreyle korunan Özel Endpoint: İlk erişim

Şifre sağlanıp doğrulandıktan sonra kullanıcı, istenen endpoint veya istemciye erişebilir:

Şifreyle korunan Özel Endpoint: Yetkilendirme sonrası

Endpoint hiyerarşisi oluşturma

Lütfen bir API hiyerarşisi oluşturma talimatlarını okuyun.

Özel endpoint'i devre dışı bırakma

Seçeneklerde, özel endpoint'i devre dışı bırakmak için "Enabled" değerini false olarak ayarlayın.

Bu özellik, özel endpoint'in bir API hiyerarşisinin parçası haline getirilmesi durumunda, alt özel endpoint'lere ortak bir davranış sağlamak için kullanışlı olabilir; ancak kendisinin çalıştırılmasına gerek kalmaz.

Özel endpoint'i açıklama

Özel endpoint'e bir açıklama vermek için Belge ayarları panelindeki "Excerpt" alanını kullanın.

Daha fazla bilgi için API'ye açıklama ekleme kılavuzuna bakın.

Endpoint istemcileri

Her özel endpoint'in kendi istemci seti vardır.

GraphiQL istemcisi

GraphiQL istemcisine erişmek için endpoint'e ?view=graphiql ekleyin:

Özel endpoint'in GraphiQL istemcisi

GraphiQL istemcisi, Özel Endpoint düzenlenirken de "Custom Endpoint Overview" kenar çubuğu panelinden açılabilir:

Editördeki özel endpoint'in GraphiQL istemcisine bağlantı

Benzer şekilde, istemci; öğenin üzerine gelindiğinde "GraphiQL" bağlantısından Özel Endpoint'ler liste sayfasından da açılabilir:

Listedeki özel endpoint'in GraphiQL istemcisine bağlantı
Listedeki özel endpoint'in GraphiQL istemcisine bağlantı

GraphiQL istemcisini devre dışı bırakmak için Özel Endpoint editöründe "Expose GraphiQL client?" seçeneğini false olarak ayarlayın.

Interactive Schema (Voyager) istemcisi

Endpoint'in şemasını görselleştirmek ve etkileşim kurmak için Interactive Schema istemcisine erişmek amacıyla endpoint'e ?view=schema ekleyin:

Özel endpoint'in Voyager istemcisi

Interactive Schema istemcisi, Özel Endpoint düzenlenirken de "Custom Endpoint Overview" kenar çubuğu panelinden açılabilir:

Editördeki özel endpoint'in Interactive Schema istemcisine bağlantı

Benzer şekilde, istemci; öğenin üzerine gelindiğinde "Interactive Schema" bağlantısından Özel Endpoint'ler liste sayfasından da açılabilir:

Listedeki özel endpoint'in Interactive Schema istemcisine bağlantı
Listedeki özel endpoint'in Interactive Schema istemcisine bağlantı

Interactive Schema istemcisini devre dışı bırakmak için Özel Endpoint editöründe "Expose the Interactive Schema client?" seçeneğini false olarak ayarlayın.

Endpoint'i yayınlamadan önce test etme

draft veya pending durumundaki özel endpoint yalnızca şema editörü kullanıcılarına açıktır. Bu onlara şunları yapma imkânı tanır:

  • Endpoint'e karşı GraphQL queries çalıştırma
  • Endpoint'in GraphiQL ve Voyager istemcilerine erişme

Böylece bir özel endpoint oluşturabilir, ona bir Şema Yapılandırması atayabilir, draft veya pending olarak yayınlayabilir ve test edebiliriz (örn: Erişim Kontrolü kurallarının uygun olduğunu doğrulamak).

Onaylandıktan sonra, yalnızca o zaman durumunu publish olarak ayarlayarak özel endpoint'i herkese açık hale getiririz.

Kaynağı görüntüleme

Endpoint'e ?view=source eklenerek, endpoint'in yapılandırması görüntülenir (kullanıcının giriş yapmış olması ve kullanıcı rolünün buna erişim iznine sahip olması koşuluyla):

Özel endpoint kaynağı


WordPress editöründe yapılandırma

Editörün gövdesindeki girdiler şunlardır:

GirdiAçıklama
BaşlıkÖzel endpoint'in başlığı
Şema yapılandırmasıAçılır menüden, özel endpoint'e uygulanacak şema yapılandırmasını veya şu seçeneklerden birini seçin:
  • "Default": şema yapılandırması, eklentinin Ayarlarında seçilen yapılandırmadır
  • "None": özel endpoint kısıtlamasız olacaktır
  • "Inherit from parent": üst özel endpoint ile aynı şema yapılandırmasını kullan.
    Bu seçenek, "API Hierarchy" modülü etkinleştirildiğinde ve özel endpoint'in bir üst queries'i olduğunda (Belge ayarlarında seçilen) kullanılabilir
SeçeneklerÖzel endpoint'in davranışını özelleştirin:
  • Enabled?: Özel endpoint'in etkin olup olmadığı.
    Bir API hiyerarşisinde üst queries olan bir özel endpoint'i devre dışı bırakmak için kullanışlıdır
  • Expose GraphiQL client?: ?view=graphiql altında erişilebilen bir GraphiQL istemcisini endpoint'e bağlamayı etkinleştir/devre dışı bırak
  • Expose the Interactive Schema client?: ?view=schema altında erişilebilen bir Interactive Schema istemcisini endpoint'e bağlamayı etkinleştir/devre dışı bırak
  • Inherit query from ancestor(s)?: Üst özel endpoint ile aynı queries'i kullan.
    Bu seçenek, "API Hierarchy" modülü etkinleştirildiğinde ve özel endpoint'in bir üst queries'i olduğunda (Belge ayarlarında seçilen) kullanılabilir

Belge ayarlarındaki girdiler şunlardır:

GirdiAçıklama
PermalinkÖzel endpoint'in kullanılabilir olacağı endpoint
KategorilerÖzel endpoint'i kategorize edebilir.
Örn: mobile, app, vb.
ExcerptÖzel endpoint için bir açıklama sağlayın.
Bu girdi, "Excerpt as Description" modülü etkinleştirildiğinde kullanılabilir
Sayfa özellikleriBir üst özel endpoint seçin.
Bu girdi, "API Hierarchy" modülü etkinleştirildiğinde kullanılabilir