Wep Api ile RequestHeader okuma

Requestler header, method, content  vs birden çok bilgi içeriyorlar (Http Request).

Peki headerdaki bir değere, Web api metodunda nasıl kullanışlı bir biçimde erişebiliriz.

İlk akla gelen Request objesi üzerinden headers a ulaşmak , şöyle ki :

her erişmek istediğimizde bu kodu yazmak yerine ihtiyaç olan yerlere HttpParameterBinding kullanarak erişmek, parametre için type  (int, string vs) casting işlemlerini merkezi bir şekilde yönetmek için web api nin nimetlerinden yararlanırsak:

 

Parametrelerde binding yapabilmek için ParameterBindingAttribue kullanırız.

Bu attribute kullanırken constructor da belirtildiği gibi requestHeader da hangi isimde parametre geleceğini söylememiz gerekiyor.

Örnek :

Eğer sıkça kullanmamız gereken ya da string olarak header name belirttiğimiz için yanlış yazma durumu oluşmamasını istediğimizde ise FromHeaderAttribute’den miras alarak özelleşmiş tipleri yapabiliriz.

Örnek :

Yukardaki LanguageHeaderAttribute sınıfı “Language” isminde request header değeri arayacak ve onun ilk değerini (string listesi olarak geldiği için ilkini almıştık) metod parametrelerinden belirtilene binding yapacaktır.

Örnek :

Metod içerisinde lang değerinin headerdan okunup getirildiğini uygulamanızda görebilirsiniz.