Web Servis Nedir?
Herkese merhaba arkadaşlar, bugün ki yazımda Web Servis Nedir? sorusunu cevaplandırmaya çalıştım. Umarım okuyan herkes için faydalı bir yazı olur, keyifli okumalar dilerim.
Basit bir şekilde Web Servis tanımını ele alalım. Web üzerinde sunulan bir hizmet. Bu doğru bir tanım olabilir mi? Bu tanımı biraz düşünebilirsiniz. Olaya farklı açıdan yaklaşmayı deneyelim.
İnternet üzerinde HTTP protokol’ünü kullanarak bir hizmet sunduğunuzu düşünün peki sizce bu gerçekten de bir web servis haline gelebilir mi?
Bir çok web uygulaması kullanıyor olabilirsiniz. Öyle değil mi? Bunlara örnek vermek gerekirse Facebook, Instagram vb. bir çok uygulama… Bunların hepsi web servis mi?
W3C Definition web servis kavramını şu şekilde tanımlamıştır:
Bir web hizmeti, bir ağ üzerinden birlikte çalışabilir makineler arası etkileşimi desteklemek için tasarlanmış bir yazılım sistemidir. Bu tanımda 3 anahtar kelime bulunmaktadır:
- Bir ağ üzerinden
- Birlikte çalışabilirlik
- Makineler arası etkileşim
İlk olarak bu 3 anahtar kelimeyi inceleyelim.
Öncelikle web servisleri, uygulamadan uygulamaya etkileşim sağlamak için tasarlanmıştır. Yani birbirinden farklı uygulamaların veya platformların birbirleriyle anlaşabilmesi, konuşabilmesi veya iletişim kurabilmesi amacı ile oluşturulmuştur.
Diğer tarafından her uygulama veya platform ile teknolojileri ne olursa olsun iletişim kurabilir olmalı ve çalışabilmelidir.
Son olarak ağ üzerinden iletişime açık olabilmesi ve diğer uygulamaların onunla iletişim kurabilmesi gerekmektedir.
Tüm bunlar sağlandığında bir uygulama web servis haline gelebilecektir.
Web Servis Nasıl Çalışıyor?
Yukarıda ki görselde görüldüğü üzere client(istemci)tarafından internet üzerinden web servis’e istek atılıyor ve atılan bu istek web servis için bir girdi niteliği taşımaktadır. Atılan istek sonucu bir yanıt veriliyor bu verilen yanıt bir çıktı niteliği taşımaktadır.
Burada önemli olan husus web servislerin platform bağımsız olmasıdır. Yani bir web servis her platform ile çalışabilmelidir. Peki bunu nasıl başarıyor?
Öncelikle bilinmelidir ki isteklerin ve yanıtlarında aynı şekilde platform bağımsız olması gerekmektedir. Yani siz hangi platform ile çalışırsanız çalışın istek ve yanıt hepsinin desteklediği formatta olmalıdır. İstek ve yanıtlar için iki format vardır. Bunlar:
- JSON
- XML
formatlarıdır.
İstek ve Yanıt Formatları
XML
XML, genişletilebilir işaretleme dili anlamına gelmektedir. XML’i istediğiniz her platformda oluşturabilirsiniz.
<getCourseDetailsRequest>
<id>1</id>
</getCourseDetailsRequest>
Gördüğünüz üzere yukarıda ki XML kodu örneğinde ‘1’ id’li kursun detaylarını öğrenmek istiyorum. XML istek ve yanıtlar için kullanılan popüler bir formattır.
JSON
JSON, javascript nesne gösterimi anlamına gelmektedir. Genellikle ön uçta kullanılır. Javascript uzun bir süre ön yüzde kullanılan bir dildi JSON ise javascript’in nesneleri temsil etme formatıydı. Ancak artık JSON hem arka uçta hem de ön uçta ve bir çok platform tarafından desteklenen bir format haline geldi. Günümüzde en çok kullan format diyebiliriz.
Web servisi platform bağımsız hale getirmek için aslında yapılan şey istek ve yanıtları platform bağımsız hale getirebilmektir diyebiliriz.
Web Servis İstek ve Yanıt Formatını Nasıl Anlıyor?
Bunun cevabı Service Definition(Hizmet Çözümü). Her web servis bir Service Definition sunar. Service Definition istek ve yanıt formatını belirtecek olmasıdır. Gelen talebin yapısını belirtir bu sayede format neyse onu tanımlamış olur.