GraphQL'den JSON Örneği
Bir GraphQL şeması yapıştır, Query tipine uyan bir JSON belgesi al — her alan dolu, listeler doldurulmuş, enum'lar seçilmiş
Giriş
Çıktı
GraphQL'den JSON Örneği aracı nedir?
Test paketinde bir GraphQL API'sini mock'lamak genellikle her tip için elle sahte veri yazmak demektir — sıkıcı, kırılgan ve şema bir iki sprint içinde fikstürlerinden uzaklaşır. Bu sayfa senin GraphQL şema tanım dilini okuyup ona uyan bir JSON belgesi üretir. SDL'ini sola yapıştır, sağ panel sana doldurulmuş bir JSON nesnesi versin: Query tipinin her alanı doldurulmuş, listeler iki elemanla doldurulmuş, enum'lar ilk değerine ayarlanmış ve DateTime veya URL gibi özel skalerler mantıklı varsayılanlara eşlenmiş.
Sayfada yüklü bir parser bağımlılığı yok — SDL gezgini elle yazılmış, ~600 satır ve gerçek bir şemada ortaya çıkan her yapıyı kapsıyor: type, interface, union, enum, input, scalar, liste ve non-null modifier'ları ile öz-referanslı tipler. Çıktı RFC 8259'a uygun düz JSON, iki boşluk girintili, fetch mock'una veya Postman örnek yanıtına yapıştırmaya hazır. Adı email, name, phone, currency veya status olan alanlar uyumlu örnek değerler alır; geri kalan her şey genel bir "sample text"'e düşer.
Her şey tarayıcında oluyor. Şeman sayfayı asla terk etmiyor, hiçbir ağ çağrısı yapılmıyor ve dönüştürme anında.
GraphQL'den JSON Örneği aracı nasıl kullanılır
Üç hızlı adım. Aşağıda tarif edilen düğmeler bu sayfadaki gerçek düğmeler.
Yapıştır, yükle veya bir örnek yükle
Bir GraphQL şemasını sol Giriş paneline yapıştır — yazmayı bırakmandan yaklaşık üçte bir saniye sonra dönüştürme otomatik olur, yani Dönüştür düğmesi yok. .graphql veya .gql dosyası için Yükle'ye bas, ya da gerçekçi bir e-ticaret Order şemasını yüklemek için Örnek'e bas. Tipik bir giriş şuna benzer:
type Query { order(id: ID!): Order } type Order { id: ID! customer: Customer! items: [OrderItem!]! total: Money! status: OrderStatus! placedAt: DateTime! }Hem sunucu tarzı şemalar (type Query { ... } ile) hem de bağımsız tip dosyaları çalışır. Gezgin, varsa Query'i kök olarak alır, yoksa ilk nesne tipini. Kabul edilen şekiller, graphql-js gibi araçların başlangıçta parse ettikleriyle eşleşir.
JSON çıktısını oku
Sağ Çıktı paneli JSON örneğini iki boşluk girintiyle render eder. Nesne tipleri nesneye dönüşür. Listeler iki elemanlı dizilere dönüşür. Enum'lar ilk değerlerine bir string olarak dönüşür. Özel skalerler mantıklı varsayılanlar alır — DateTime bir ISO-8601 zaman damgasına, URL "https://example.com/..."'e, JSON {}'a dönüşür. Öz-referanslı tipler (type Person { friends: [Person!]! }) derinlik 4'te kesilir ve null ile sonlanır, yani sayfa asla takılmaz.
Kopyala veya indir
Bir fikstür dosyası, mock sunucu veya fetch stub'ı için JSON'ı almak için Kopyala'ya bas. sample.json olarak kaydetmek için İndir'e bas. Giriş panelindeki temizle düğmesi seni boş duruma döndürür. Dönüştürme tamamen istemci tarafında olur — şeman sayfayı asla terk etmez.
Bunu gerçekten ne zaman kullanırdın
Mock GraphQL sunucu fikstürleri
json-graphql-server veya bir Apollo Server mock'ı ile bir mock backend ayağa kaldırıyorsun ve şemanın şekline uygun bir başlangıç JSON dosyasına ihtiyacın var. SDL'i yapıştır, çıktıyı kopyala ve yolun %80'ini almış olursun — adları ve ID'leri ayarla, fikstürü gönder.
Postman / Insomnia örnek yanıtları
Postman veya Insomnia'da bir GraphQL endpoint'ini belgelemek, her operasyon için bir örnek yanıt gövdesi doldurmak demektir. Tipten JSON şeklini üret, örneğe yapıştır, değerleri test senaryosuna uyacak şekilde düzenle. İç içe nesneleri sıfırdan elle yazmaktan iyidir.
Frontend tip taslağı
Backend yeni bir GraphQL tipi yayınladığında, frontend genellikle endpoint gerçek olmadan UI'ı bağlamak için bir örnek payload'a ihtiyaç duyar. Şemayı JSON'a çevir, bir fikstüre at ve bileşenleri fikstüre karşı kur. API hazır olduğunda canlı veriye geç.
Şema keşfi
300 satırlık bir SDL okumak iyi; gerçek bir yanıtın nasıl göründüğünü görmek daha hızlı. JSON örneği şemayı somut hale getirir — hangi alanların iç içe olduğunu, hangilerinin dizi olduğunu ve enum'ların nerede yaşadığını anında görürsün. Bir servise yeni katılan mühendisler için faydalı bir onboarding yardımı.
Sık Sorulan Sorular
Sorguyu gerçek bir sunucuya karşı çalıştırıyor mu?
Hayır. Sayfa yalnızca şema şekline uyan bir örnek belge üretir. Hiçbir ağ çağrısı yok. Gerçek bir GraphQL endpoint'ine ulaşmak gerekiyorsa GraphiQL veya herhangi bir GraphQL istemcisini kullan.
Öz-referanslı tipim neden birkaç seviye sonra duruyor?
Derinlik 4'te bir özyineleme sınırı var. type Person { friends: [Person!]! } gibi bir şema aksi takdirde sonsuz iç içe bir nesne üretirdi. Sınırın ötesinde değer null olur, böylece JSON sonlu ve düzgün yazdırılabilir kalır.
Hangi kök tipi kullanır?
Önce type Query'i arar. Yoksa şemada tanımlı ilk nesne tipini seçer (input tiplerini atlar). SDL'ini yeniden sıralayarak herhangi bir tipi en üste taşıyabilirsin.
Özel skalerler işleniyor mu?
Evet. Yaygın olanlar (DateTime, Date, Time, URL, Email, JSON, BigInt) için mantıklı varsayılanlar gömülü. Diğer her şey genel bir placeholder string'e düşer. Skaler'in belirli bir şeye eşlenmeli ise çıktıyı elle düzenle — sadece JSON.
JSON şemama göre geçerli mi?
Şekil olarak geçerli: gerekli her alan dolu, tipler bildirilen scalar/object/list ile uyumlu, enum'lar gerçek bir enum değeri kullanıyor. Anlamsal olarak geçerli değil (email gerçek bir email değil, sipariş ID'si gerçek bir ID değil). Bunu fikstür başlangıç noktası olarak kullan, testlerin yerine değil.
Şemam bir sunucuya gönderiliyor mu?
Hayır. Dönüştürme tamamen tarayıcında çalışır. Hiçbir şey yüklenmiyor, hiçbir şey loglanmıyor. Dahili veya yayınlanmamış şemaları yapıştırmak güvenli.
Diğer GraphQL ve JSON Araçları
Bir örnek üretmek GraphQL iş akışının bir parçası. Bu araçlar geri kalanı kapsar: