Tek olumlu yanıtın içinde farklı sonuçlar olabilir

Ajan beş kayıt için toplu sorgu yaptı. Araç bir HTTP 200 yanıtı döndürdü ve ajan “Beş kayıt da hazır” dedi. Oysa yanıt zarfının içinde iki başarılı sonuç, bir hata, eksik bir kayıt ve çelişen iki yanıt olabilir. Toplu çağrının yanıtlanması ile her girdinin sonucunun doğrulanması aynı tamamlanma koşulu değildir.

Microsoft Graph’ın toplu istek belgesi, tekil yanıtların isteklerden farklı sırada gelebileceğini ve kimlikle eşlenmesi gerektiğini açıklar. Ayrıca dıştaki 200 durumunun içteki bütün isteklerin başarılı olduğu anlamına gelmediğini belirtir. Aşağıdaki örnek bu ayrımı öğretmek için hazırlanmıştır; gerçek Graph çağrısı veya onun bütün uygulama ayrıntılarının bir benzetimi değildir.Kaynak: Microsoft Graph — JSON batching

Bu eğitimde beş bağımsız okuma isteği vardır: B1, B2, B3, B4 ve B5. Kayıt kimlikleri aynı büyük harfli biçimde verilmiştir; birleştirme öncesinde yeni harf dönüşümü yapılmaz. Kaynakta başarılı sonuç için durum 200 ve dolu bir value alanı, hata için durum 404 ve hata kodu beklenir. Gerçek bir araçta geçerli durumlar kendi sözleşmesinden alınmalıdır.

İstek listesi ve dönüş listesini yan yana koyun

Özgün sentetik toplu yanıt · dış durum 200
Geliş sırasıİstek kimliğiTekil durumGövde özeti
1B2200value=Kart B
2B1200value=Kart A
3B3404error=NOT_FOUND
4B5200value=Kart E
5B5404error=NOT_FOUND
6B6200value=Kart F

Yanıttaki altı satır, altı geçerli iş sonucu demek değildir. B5 iki kez dönmüştür; üstelik durumları çelişir. B6 hiç istenmemiştir. B4 ise yoktur. Gelen satır sayısı istek sayısından büyük olsa bile bir istek hâlâ eksik olabilir. Bu nedenle ilk kontrol, sayıları karşılaştırmanın yanında kimlik kümelerini ve kimlik başına yanıtları incelemelidir.

B2’nin önce gelmesi başlı başına hata değildir. Sıraya göre eşleme yapsaydınız B2 sonucunu ilk istek B1’e yazabilirdiniz. Doğru ilişki yanıt konumundan değil, istek kimliğinden kurulur. Ardından o kimliğe ait kaç yanıt bulunduğunu ve bu yanıtların birbiriyle tutarlı olup olmadığını kontrol edersiniz.

Kopyalanabilir toplu yanıt denetimi
İstenen kimlikler B1–B5. Dış HTTP durumu 200 olan altı satırlık sentetik yanıtı kullan. Önce istenen/dönen kimlik kümelerini karşılaştır; sonra her istek için tekil durum ve gövdeyi denetle. Yanıt sırasıyla istek sırasını eşitleme. B5 için çelişen yanıtları başarıya indirgeme. B4’ü başarısız olmuş varsayma; sonuç eksik. B6’yı hiçbir isteğe atama. Çıktı: beş istek için karar, fazladan kayıt listesi ve açık incelemeler. Yeni araç çağrısı yapma.

Beş isteğin her birine açık durum verin

Elle hazırlanmış uzlaştırma tablosu
İstekEşleşen yanıt sayısıKararDayanak
B11Başarı doğrulandı200 ve Kart A
B21Başarı doğrulandı200 ve Kart B
B31Araç hatası doğrulandı404 ve NOT_FOUND
B40Sonuç eksikBu zarf içinde yanıt yok
B52Çelişki; inceleme gerekli200 ve 404 aynı kimlikte
Açıklamalı beklenen çıktı
İstenen 5 kaydın 2’sinde başarı, 1’inde bildirilen hata doğrulandı. 1 kaydın sonucu eksik, 1 kaydın sonuçları çelişkili. 2 + 1 + 1 + 1 = 5.
B6 fazladan kayıttır; beş isteğin paydasına eklenmez.
B5’in iki yanıtından ilki veya sonuncusu keyfi seçilmez. Yeni çağrı: 0.

B3’ün hata sonucu açık olduğu halde B4’ün neden bulunmadığını bilmiyoruz. Yanıt aktarımı eksik kalmış, araç sözleşmesi bozulmuş veya başka bir durum yaşanmış olabilir. Bu ihtimallerden birini gerçek neden diye seçmeyin. B4 için durumun belirsiz olduğunu, B3 için ise araç tarafından belirli bir hata bildirildiğini ayrı kaydedin.

Aynı kimliğin iki kez gelmesi her durumda aynı karar gerektirmez. Birebir aynı yanıtın tekrarı, desteklenen bir sözleşmede etkisizleştirilebilir. Fakat B5’teki gibi başarı ve hata birlikte geliyorsa tekrarları kaldırıp tek satıra indirmek belirsizliği gizler. Bu örnekte çelişkili kimlik, kaynak incelemesi tamamlanana kadar kapanmaz.

Kısmi sonucu kullanmanın sınırını yazın

B1 ve B2’nin doğrulanması, bütün görevin tamamlandığını göstermez. Kullanıcı eksiksiz beş kayıt istediyse çıktı kısmi olarak sunulur. Kullanıcıya hangi kimliklerin hazır, hangilerinin açık olduğunu göstermek mümkündür. B6’yı eksik B4 yerine koymak veya benzer adından hareketle eşleştirmek, kaynakta bulunmayan bir ilişki kurar.

  • Başarı ve hata sayımını yalnızca istenen kimlikler üzerinden yapın.
  • Eksik, fazla ve çelişkili kayıtları ayrı listelerde koruyun.
  • Yeniden denemenin hangi tekil isteğe, hangi kimlikle uygulanacağını araç sözleşmesinden belirleyin.
  • Yazma yapan toplu araçlarda belirsiz sonucu yeni kimlikle tekrar göndermeden önce mevcut etkiyi doğrulayın.

Burada yeni çağrı üretmememizin nedeni, örneğin bir denetim kaydı olmasıdır. Gerçek bir iş akışında eksik veya geçici hatalı isteği yeniden sorgulamak gerekebilir. Bu karar bütün paketi körlemesine tekrarlamak anlamına gelmez. Aynı zarf içinde bağımsız okuma, yazma ve birbirine bağlı işlemler varsa tekrar kuralları da farklı olabilir; verilmeyen teknik özellikleri varsaymayın.

Son kontrolünüzde hem küme hem çokluk bilgisini koruyun. Yalnızca benzersiz dönen kimlikleri toplarsanız B5’in iki çelişkili sonucu kaybolur. Yalnızca satır sayarsanız B4’ün eksikliği B6 tarafından örtülebilir. Bu iki bakışın birlikte kullanılması, küçük bir veri kümesinde farklı arıza türlerini ayırmanızı sağlar.

Düzeltilmiş ikinci zarfı inceleyin

Kaynak sahibi B5’in 404 satırının yanlış eşleşme olduğunu doğrulayıp kaldırmış olsun. Yeni zarf, önceki diğer kayıtları korusun ve B4 için 200, value=Kart D eklesin. B6 hâlâ fazladan dursun. Beş istek için yeni sonuç sayımını yapın. Bir hata bildirimi kaldığı için bütün paketi başarılı ilan edip edemeyeceğinizi açıklayın.

Alıştırmanın cevabı
B1, B2, B4 ve B5: dört doğrulanmış başarı. B3: bir doğrulanmış araç hatası. Eksik ve çelişkili istek kalmadı; 4 + 1 = 5. B6 fazladan kayıt olarak ayrı tutulur. Beş sonucun durumu biliniyor, fakat beş işlem de başarılı değil. Düzeltme, kaynak sahibinin yeni kanıtına bağlanır.

Kendi toplu aracınız için aynı tabloyu gerçek alan adlarıyla hazırlayın. İstek kimliği, tekil durum, gövde koşulu ve tekrar davranışı açık olsun. Böylece ajanın son cümlesi dıştaki olumlu zarf koduna değil, kullanıcı tarafından istenen her kaydın doğrulanmış sonucuna dayanır.

Kaynaklar ve doğrulama

  • Microsoft Graph — JSON batching

    Yanıtların farklı sırada gelebilmesi, kimlikle eşleme ve toplu 200 yanıtının tekil başarıları garanti etmemesi.

    Erişim ve kontrol:

İlgili okumalar

AI Ajanları ve İş Akışı Otomasyonu

AI Ajanları ve İş Akışı Otomasyonu eğitiminde toplu işlem yapan bir aracın istek ve yanıt örneğini birlikte değerlendirebilirsiniz. Talebinizde tekil kayıtların sonucunu hangi kimlikle izlediğinizi belirtin.

  • Kuruma özel planlanır