Testnizer

GraphQL

Şema içgözlemi ve tür güvenli değişken editörleriyle sorgular, mutasyonlar ve abonelikler çalıştırın.

Testnizer’ın GraphQL editörü, yalnızca HTTP olan uç noktalar ile graphql-ws abonelik transportunu destekleyen sunucular arasındaki farkı anlar ve her operasyon türünü buna göre yönlendirir.

GraphQL isteği oluşturma

+ YeniGraphQL tıklayın. Editör, solda boş bir operasyon paneli, altında bir değişken editörü ve sağda bir şema tarayıcısıyla açılır.

Uç nokta URL

GraphQL uç nokta URL’sini yapıştırın. Değişkenler desteklenir:

{{apiBaseUrl}}/graphql

Header’lar

Kimlik doğrulama dahil istek için HTTP header’ları ekleyin:

Authorization: Bearer {{accessToken}}
Content-Type: application/json   ← otomatik eklenir, gerekirse geçersiz kılın

Operasyon editörü

İçgözlenmiş şemayla desteklenen GraphQL söz dizimi vurgulama, parantez eşleştirme ve otomatik tamamlamalı bir Monaco örneği.

Sorgu, mutasyon veya abonelik yazın:

query GetUser($id: ID!) {
  user(id: $id) {
    id
    email
    createdAt
    roles {
      name
    }
  }
}

Gönder’e tıklayın (veya Ctrl+Enter). Testnizer operasyon türünü algılar:

  • query / mutation → HTTP POST olarak gönderilir (standart JSON gövdesi)
  • subscription → bağlantı graphql-ws WebSocket transportuna yükseltilir

Editörde birden fazla operasyon olabilir. Hangisinin çalışacağını seçmek için araç çubuğundaki operasyon adı açılır menüsünü kullanın.

Variables sekmesi

Mevcut operasyon için JSON değişkenlerini düzenleyin:

{
  "id": "usr_01HXYZ"
}

Değişken editörü JSON’ı doğrular ve içgözlem mevcut olduğunda şemaya karşı tür uyumsuzluklarını vurgular.

{{ortam}} değişkenleri JSON değerlerinin içinde çözülür:

{
  "id": "{{currentUserId}}"
}

Şema içgözlemi

Şema tarayıcısı başlığındaki İçgözle’ye tıklayın. Testnizer, standart içgözlem sorgusunu uç noktaya gönderir (mevcut header’ları kullanarak, bu nedenle auth otomatik olarak dahil edilir) ve sonuçtan tür tarayıcısını oluşturur.

Tür tarayıcısı aranabilir. Herhangi bir türe tıklayarak alanlarını, argümanlarını ve açıklamalarını görüntüleyin. Tür tarayıcısında bir alana tıklamak, onu imleç konumundaki operasyon editörüne ekler.

İçgözlem sonuçları uç nokta + header kombinasyonuna göre önbelleğe alınır ve uygulama yeniden başlatmalarında kalıcıdır. Yenilemek için Yeniden içgözle’ye tıklayın.

Sunucu içgözlemi devre dışı bırakırsa (üretimde yaygın), bir şema SDL dosyasını doğrudan yapıştırabilirsiniz:

  1. Şema tarayıcısında Dosyadan şema yükle’ye tıklayın
  2. Bir .graphql veya .sdl dosyası seçin
  3. Testnizer dosyayı otomatik tamamlama ve tür denetimi için kullanır

Abonelikler

Operasyon subscription olduğunda Testnizer otomatik olarak bir WebSocket bağlantısına yükseltir. Bağlantı graphql-ws protokolünü kullanır (Sec-WebSocket-Protocol: graphql-ws).

Abonelik zaman çizelgesi WebSocket editörüyle aynı şekilde davranır — olaylar geldikçe görünür, duraklatabilir, filtreleyebilir ve bireysel yükleri inceleyebilirsiniz.

Durdur’a tıklayana veya sekmeyi kapatana kadar bağlantı açık kalır.

Eski subscriptions-transport-ws protokolünü kullanan sunucular için istek ayarlarındaki (dişli simgesi) Legacy WS seçeneğini etkinleştirin.

HTTP ayrıntıları

Sorgular ve mutasyonlar için istek şöyle bir POST’tur:

{
  "query": "...",
  "variables": { ... },
  "operationName": "GetUser"
}

Console sekmesi, tam olarak neyin gönderildiğini doğrulayabilmeniz için ham HTTP isteğini ve yanıtı gösterir.

Kalıcı sorgular (APQ)

Otomatik Kalıcı Sorgular’ı etkinleştirmek için istek ayarlarında Automatic Persisted Queries seçeneğini açın; önce sorgu karmasını gönderir ve PersistedQueryNotFound hatasında tam sorguya geri döner. Testnizer iki adımlı alışverişi otomatik olarak gerçekleştirir.

Yanıt

Yanıt gövdesi Monaco’da gösterilen biçimlendirilmiş JSON’dır. data.errors[*] konumundaki hatalar yanıt panosunda vurgulanır.

Ağ düzeyinde sorunları hata ayıklamak için Headers ve Console sekmeleri kullanılabilir.