Rehber

GraphQL Formatter: Boş ve Dolu Girdileri Anlama

Boş ya da yalnızca boşluklardan oluşan giriş boş sonuç verir. Dolu GraphQL sorguları ve şemaları ise mevcut davranışta biçimlendirilmiş metin döndürmeden başarısız olur.

Araç GraphQL Biçimlendirici

Aracın kapsamı ve temel ayrım

GraphQL Formatter, GraphQL sorgusu veya şema metniyle çalışmak üzere sunulan bir biçimlendirme aracıdır. İncelenen davranışta boş giriş ile dolu giriş birbirinden belirgin biçimde ayrılır: boş ya da yalnızca boşluk karakterlerinden oluşan içerik boş bir sonuçla tamamlanırken normal bir metin, biçimlendirilmiş çıktı döndürülmeden başarısız olur. Bu nedenle araç, belirli bir sorgunun görünümünü düzenlemekten çok giriş koşullarını ve sonuç sınırlarını incelemek için ele alınmalıdır.

Aracı değerlendirirken önce boş bir deneme yapmanız daha anlamlı bir başlangıç sağlar. Böylece boş sonucun beklenen bir davranış mı, yoksa gönderim sorunu mu olduğunu ayırt edebilirsiniz. Ardından dolu bir sorgu veya şema ile yapılan denemede başarılı güzelleştirme ya da küçültme sonucu beklememelisiniz. Elde edilen durum, GraphQL metninin geçerli olduğunu, ayrıştırıldığını veya çalıştırıldığını kanıtlamaz.

Denemeyi adım adım yürütme

  1. Denemek istediğiniz GraphQL sorgusunu veya şema metnini giriş alanına aktarın. Yalnızca boş giriş davranışını görmek istiyorsanız alanı boş bırakın ya da içine birkaç boşluk karakteri yazın. Satır sonlarından oluşan bir değer de içerik bakımından boş kabul edilir.

  2. Kullanılabilen seçenekler arasında bir mod ve girinti değeri bulunuyorsa bunları gönderimden önce belirleyin. Dolu girişte mod varsayılan olarak güzelleştirme yoluna yönelir; yalnızca minify değeri küçültme yolunu seçer, başka değerler ayrı bir mod oluşturmaz. Girinti için normal varsayılan, seviye başına 2 boşluktur. Dönüştürülemeyen, 0'dan küçük veya 8'den büyük değerler bu normalleştirmede 2 olarak ele alınır.

  3. Gönderimden sonra girişin boş olup olmadığını esas alın. Boş veya yalnızca boşluklardan oluşan içerik için biçimlendirilmiş metin boş kalır; giriş ve çıkış boyutları da 0 görünür. Bu özel yolda mod ve girinti değerleri normalleştirilmeden, gönderilen biçimleriyle korunur.

  4. Dolu bir metin kullandıysanız sonucu başarılı bir biçimlendirme olarak yorumlamayın. Türü metin olan ve boyut kontrolünü geçen sıradan bir içerik bile güzelleştirme veya küçültme yolunda sonuç işleme sırasında başarısız olur. Bu durum, metnin GraphQL açısından hatalı olduğunu tek başına göstermez.

  5. Giriş değerinin metin olduğundan emin olun. Ana değer boş bırakıldığında eski adlarla sunulan alternatif bir metin değeri seçilebilir; seçim tamamlandıktan sonra metin olmayan değer işlenmez. Dolu içeriğin UTF-8 kodlaması 1.000.000 baytı aşarsa boyut kontrolü de biçimlendirme yapılmadan sonuçlanır. Bu kontrolleri ayırmak için önce kısa ve açık bir metinle, sonra daha büyük içerikle ayrı denemeler yapın.

Sonucu doğru okuma

Boş bir sonuç, aracın boş veya yalnızca boşluk içeren değeri kabul ettiğini gösterir; ortada biçimlendirilmiş bir sorgu bulunmaz. Giriş ve çıkış boyutlarının sıfır olması bu özel yolun beklenen göstergesidir. Mod ile girintinin gönderildiği biçimde kalması, boş içerikte dolu girişler için yapılan normalleştirmenin uygulanmadığını anlatır.

Dolu içerikteki başarısızlık, metnin sözdizimi bakımından kusurlu olduğuna dair bir karar değildir. Mevcut davranışta sorun, normal bir metin biçimlendirme yoluna ulaştıktan sonra sonuç döndürülmeden ortaya çıkar. Bu yüzden çıktıyı doğrulama, ayrıştırma, çalıştırma veya doğruluk kontrolü yerine davranış sınırı olarak değerlendirin.

Küçültme yolu, yorum benzeri ve # ile başlayan metni kaldırmaya, boşlukları daraltmaya ve süslü parantez, normal parantez, iki nokta ile virgül çevresindeki boşlukları düzenlemeye yönelik dönüşümler içerir. Köşeli parantez çevresindeki boşluklar için aynı dönüşüm tanımlı değildir. Bununla birlikte sıradan dolu girdilerde yol sonuç vermeden başarısız olduğundan bu dönüşümlerin uygulanmış bir çıktı olarak görülmesi beklenmez.

Uygulamalı örnek

Bir geliştirici, gerçek bir sorgu kullanmadan önce aracın boş girişe verdiği sonucu denemek için üç boşluk gönderir.

Giriş alanına yalnızca üç boşluk yerleştirin, modu minify ve girintiyi 6 olarak gönderin, ardından dönen alanları inceleyin.

Sonuç biçimlendirilmiş metin bakımından boş olur; giriş ve çıkış boyutları 0 görünür, mod ile girinti ise gönderilen değerler olarak kalır.

Sınırlamalar

  • Mevcut davranışta dolu sorgu veya şema metni için kullanılabilir biçimlendirilmiş çıktı sağlanmaz; küçültme yolunda tanımlanan metin ve boşluk dönüşümleri bu sınırı değiştirmez.

Sık yapılan hatalar

  • Metin yerine başka bir tür göndermek veya UTF-8 boyutu 1.000.000 baytı geçen içerik kullanmak biçimlendirme sonucunu engeller. Düzeltme olarak kısa bir metin değeri seçin, boyutun sınır içinde kaldığını denetleyin ve tür ile boyut denemelerini birbirine karıştırmadan yeniden gönderin.

Sık sorulan sorular

GraphQL Formatter dolu bir sorguyu biçimlendirir mi?

Dolu bir sorgu için başarılı biçimlendirme çıktısı alınmaz; boş veya yalnızca boşluklardan oluşan gönderim ise boş sonuçla tamamlanır. Bu nedenle araç, dolu sorguyu düzenlenmiş metin olarak sunan bir sonuç üretmez.

minify modu nasıl çalışır?

minify değeri küçültme yolunu seçer, bunun dışındaki mod değerleri güzelleştirme yoluna yönelir. Dolu girişlerde her iki yol da sonuç döndürmeden başarısız olduğu için seçim, kullanılabilir bir çıktı sağlamaz.

Boş girişte mod ve girinti değerleri ne olur?

Boş gönderimde mod ve girinti için normalleştirme yapılmaz; gönderdiğiniz değerler korunur. Aynı durumda giriş ile çıkış boyutlarının ikisi de 0 olarak döner.

Araç

GraphQL Biçimlendirici