Bir iş süreci için bir uç nokta oluştururken, bu istekte gönderilecek veri türünü belirtmelisiniz ( Request payload type ). En yaygın seçenek JSON ; gerekli tüm parametreleri kolayca belirlemenize ve bir veri modeli veya bir dizi nesne iletmenize olanak tanır. Ek olarak, örneğin XML veya Multipart Form (dosya göndermeniz gerekiyorsa) gibi başka seçenekler de mümkündür.
Aynı zamanda, kesin yapı önceden bilinmediğinde (veya sadece önemli olmadığında) bir durum kabul edilebilir. Bu durumda, makul bir seçenek " raw " sorguları kullanmaktır.
raw istekler için İş Süreci
Bunun gerekli olabileceği bir durum düşünün. Geliştirdiğimiz hizmetin sadece bir bağlantı bağlantısı olduğunu varsayalım. Görevi, kullanıcıdan bir istek almak, yetkilendirmeyi kontrol etmek, günlükleri kaydetmek, spam koruması gerçekleştirmek ve her şey yolundaysa isteği yeniden yönlendirmektir.
Raw sorgularının önemli bir özelliği, iş süreçleri tasarlanırken hiçbir girdi parametresinin kullanılmamasıdır. Bunun yerine, istek gövdesini almak için özel bir blok kullanılır - Get Request Body . Diyelim ki istek hakkında genişletilmiş bilgiyle ilgileniyorsunuz. Bu durumda, Current Request Info bloğu uygun bir seçenektir - yalnızca istek gövdesini değil, aynı zamanda ek parametreleri ve istek başlıklarını da döndürür.
İstekten belirli bir başlıkla ilgilendiğimiz durumda, Get Request Header bloğu kullanılarak elde edilebilir. Yukarıdaki örnek, isteğin IP adresini içeren X-Real-IP başlığını okur. Ortaya çıkan IP, verilen IP'nin geçerli olduğunu ve yasaklı adreslerin kara listesinde olmadığını kontrol etmesi gereken bir işleve iletilir. Sonuç olarak, süreç ya uygun bir hata mesajı ile durdurulacak ya da her şey yolundaysa, daha fazla yürütmeye izin verilecektir.
Raw olarak alınan istek, bir bayt dizisi olarak temsil edilir. Algılama kolaylığı için bir dizgeye dönüştürülebilir ( To String bloğu); bu formda bilgiler günlüklerde saklanır.
Bu durumda, isteğin kendisi, herhangi bir dönüşüm olmaksızın, HTTP Request bloğu kullanılarak yeniden yönlendirilebilir. Bu örnekte, istek yöntemi, URL'si ve istek gövdesi ( Current Request Info bloğundan alınan) belirtilmiştir. HTTP Request bloğunun sonucu, tüm iş sürecinin sonucu olarak kullanılır.
Ekran görüntüsü, son iş sürecini gösterir. Lütfen fonksiyon bloklarının ( FUNC Save request Log ve FUNC IP Blacklist Check ) örnek olduğunu ve yalnızca bu projenin kapsamında bulunduğunu unutmayın.
Böylece uç nokta, gerçek içeriğinden bağımsız olarak herhangi bir istekle çalışmak için kullanılabilir. Üçüncü taraf bir hizmete gönderilmesi gereken isteğin tam olarak ne olduğunu bilmenize gerek yoktur ve içinde bazı değişiklikler olsa bile (model ekleme, parametreleri yeniden adlandırma), uç noktayı herhangi bir değişiklik yapmadan kullanmaya devam edebilirsiniz. proje.