Merhabalar ,

Content Negotiation kavramı Asp.net Web Api tarafında, kullanıcıların talebine göre verinin hangi biçimde sunulacağını belirlemek için kullanılan sunucu odaklı bir çözüm yöntemi olarak kullanılmaktadır. Kullanıcılar talep ettikleri ortam döküman türlerini HTTP header bilgisi olarak belirleyebilirler. Talepteki Header bilgisi Web Api tarafından değerlendirilerek uygun şekilde bir cevap oluşturulur ve HTTP protokolü üzerinden kullanıcıya sunulur.

Web Api bir kullanıcının hangi niyetle kaynak talep ettiğini anlamak için talebin(HttpRequest) Header bilgilerini kontrol eder. Header bilgilerinde içerik ile ilgili kısımlar şu şekilde sıralanabilir:

  • Content-Type: API Burada belirtilen formatta veri sunar.
  • Accept: Kullanıcı burada kabul ettiği veri türlerini belirtir. (application/json ve application/xml gibi)
  • Accept-Charset:Kabul edilen karakter kodlaması. (UTF-8 gibi)
  • Accept-Language: Kabul edilen dil seçeneği. (en-us, tr-tr gibi)
  • Accept-Encoding:Kabul edilen içerik kodlaması. (gzip gibi),

screenshot_2

Accept :

wep api json ve xml desteği var ise header a  Accept:application/xml yazaraka response un xmlformatında dönmesini sağlayabiliriz , eğer herhangi bir değer göndermez isek default değer ne ise o şekilde response döner genel olarak default format json dır.

Örnek projemizde xml olarak bir istek attığımızda

screenshot_3

sonuç bize xml olarak dönecektir.

screenshot_4

Örnek Kullanımlar :

screenshot_5

kullandığımız wep api nin hangi formatları desteklediğini bilmiyor isek üstünlük derecesine göre istediğimiz geri dönüş formatı için 1 ile 0 arasında bir değer girerek destekliyor ise öncelik olarak o formatta response almamızı sağlayabiliriz.

Accept:application/xml;q:0.7,Accept:application/json;q:0.3

umarım faydalı olmuştur.

İyi Çalışmalar.

 

 

Print Friendly, PDF & Email
Bu alana reklam verebilirsiniz!