Kavramlarla ASP.Net WEB API Nedir ? – Bölüm 1
  1. Anasayfa
  2. ASP.Net

Kavramlarla ASP.Net WEB API Nedir ? – Bölüm 1

0

Web servisler, platformdan bağımsız olarak çalışabilen yapılardır. Bu genel tanımı biraz daha açtığımızda Web servisler farklı platformlarda çalışan birçok uygulamanın birbirleriyle iletişim kurmalarını sağlayan yapılar olduğundan söz edebiliriz. Bir yapının platform bağımsız çalışabilmesi için bir şekilde aynı dili konuşuyor olmaları gerektiğini biliyoruz. Web servisler ortak dil ile iletişim kurma işini protokoller ile gerçekleştirmektedirler. Yani web servisler vasıtasıyla yapılan bir iletişimde kullanılacak protokoller veya yöntemler her platform tarafından desteklenecek notasyonlar şeklinde olmalıdır. Bu protokollere örnek olarak HTTP, RPC ve SOAP notasyonlara örnek olarak ise XML ve JSON Data’yı gösterebiliriz.

HTTP PROTOKOLÜ

İstemciler tarafından oluşturulan taleplerin sunucular tarafından yorumlandıktan sonra geriye cevap oluşturdukları protokoldür. İstemci ve sunucu arasındaki istek ve talebe bağlı bu alışverişi resim-1’de yer alan görsel ile inceleyebiliriz.

Resim-1

Yukarıdaki resimden de görüleceği üzere Client yani istemci tarafından yapılan bir istek Server yani sunucuya bir metot ile iletiliyor. Buradan anlıyoruz ki her http isteği bir metoda sahip olmalıdır. En çok kullanılan HTTP metotları ise GET, POST, PUT ve DELETE şeklindedir. Ayrıca sunuculardan dönen cevaplar üç haneli durum kodları içermektedir. Cevaplar yani Response’lar istemcilere http durum kodları ile verilmektedir. Bu kodlarla (200,400,404) aslında zaman zaman karşılaştığımız için hepimiz biliyoruz fakat ilk hanesine göre farklı anlamlara gelen bu durum kodlarınız dilerseniz Http durum kodları başlığı altındaki tablodan inceleyelim.

HTTP DURUM KODLARI

Resim-2

API Nedir?

Api (Application Programming Interface) uygulama programlama arayüzü anlamında gelmektedir. Web servis tanımında olduğu gibi temel uygulamaya ait özelliklerin başka uygulamalarca da kullanılabilmesi için oluşturulan ara yüzlerdir. Örneğin kurumlarda farklı teknolojilerle ve farklı fiziksel konumlarda barındırılan şirket içi yazılımlara tek kullanıcı adı ve tek şifre ile giriş yapılmasını sağlayan bir uygulama geliştireceğimizi düşünelim. Bu uygulama için kullanıcı doğrulama işlemini tek bir yerden yaptırıp dönen sonuç doğru ise ilgili uygulamada oturum açılabilmesi sağlanabilir. Kimlik doğrulama işlemi LDAP gibi bir ortamda yapılabilirken buraya yapılacak bağlantı API ile gerçekleştirilir ve diğer tüm uygulamalar Login işlemini doğrulamanın olduğu yerde yapmak için geliştirilen API’yi kullanır. API kullanımı oldukça yaygın ve çok geniş bir alana sahiptir fakat SSO benzeri bir uygulama ile basitçe ne şekilde kullanılabildiğine dikkat çekmek istedim.

SOAP Nedir?

SOAP (Simple Object Access Protocol) basit nesne erişim protokolü, küçük mesajları aktarmak için kullanılan servis mimarisidir. SOAP mesajları notasyon olarak XML formatındadır ve çoğunlukla Http, nadiren de TCP/IP protokolünü kullanır. Yalnızca XML tabanlı kullanımı olduğundan çok esnek olmadığını söyleyebiliriz. Ayrıca SOAP metotlar üzerinden iletişim kuran bir yapıdır.

REST Nedir?

REST (Representational State Transfer) istemci ve sunucu arasındaki iletişimi Http protokolü ile hızlı ve oldukça yalın bir şekilde yapılabilmesini sağlayan servis mimarisidir. Http protokolü ile çalışıyor olması minimum içerik ile veri iletişimi yapmasını sağlar bu da hız ve basitlik olarak artı sağlar. İstemci-sunucu arasındaki veri iletişimi notasyonu olarak XML ya da JSON Data kullanır.

REST mimarisinde, SOAP’ da olduğu gibi metotlar üzerinden iletişim kurulmaz bunun yerine URI denilen özel bir bilgiye sahiptir. REST mimarisinin güvenliğinden bahsedecek olursak SOAP kadar basit olmadığı için güvenliği sağlamak bir nebze karmaşık hal alabiliyor. REST servis mimarisi HTTP metotlarını kullandığından GET, POST, PUT, DELETE gibi metotları kullanarak isteklerini bildirirler.

RESTful Nedir?

REST standartlarına uygun olarak geliştirilen web servislere RESTful servisler denilmektedir. REST mimarisi temel alındığından yapısı oldukça basit ve genişletilebilirdir. Bu servislerin amacı istemci ve sunucu arasındaki haberleşmeyi en az yük ile platform bağımlılığı olmadan halledebilmektir. RESTful servis mimarisi veri iletişimi notasyonu olarak XML, JSON hatta HTML gibi birçok format kullanabilmektedir. RESTful servisler geliştirebilmemiz amacıyla .Net Framework platformu içerisinde yer alan WCF Web API yapısının ismi de değişmiş ve Asp.Net Web API olmuştur.

Resim-3

RESTful HTTP Metotlar

GET: Web sunucudaki kaynağın ne olduğunu öğrenmeyi sağlar.

POST: Sunucuda yeni kaynak oluşturulabilmesi için kullanılır.

PUT: Sunucuda bulunan bir kaynağı güncellemek kullanılır.

DELETE: Sunucuda bulunan bir kaynağı kaldırmak, silmek için kullanılır.

RESTful servisler kullanışlı olduğundan günümüzde popüler servisler haline gelmiştir. Bir servisin RESTful prensibinde çalışabilmesi için barındırması gereken özellikleri bulunur. Sunucunun istemci ile ilgili hiçbir bilgiyi tutmaması (stateless), istemcinin sunucudaki veri kaynağı hakkında herhangi bir bilgiye sahip değilken sunucunun da istemci hakkında herhangi bir bilgiye sahip olmaması (Client-Server), http cevaplarının istemci tarafından ön belleklenebilir olması (Cacheable) bu özelliklerdendir.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: asp.net, asp.net web servis, asp.net web API, API, Rest Servis, Soap, Wcf servis

Bu İçeriğe Tepkin Ne Oldu?
  • 24
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 2
    _ok_iyi
    Çok iyi
  • 3
    sevdim_
    Sevdim!
  • 3
    bilemedim_
    Bilemedim!
  • 1
    olmad_
    Olmadı!
  • 1
    k_zd_m_
    Kızdım!

Konya Teknik Üniversitesi Bilgisayar Mühendisliği Doktora programında tez dönemi öğrenciliğim devam etmektedir.İş hayatıma Vodafone'da Test Mühendisi olarak başladıktan sonra şuan bir üniversitede Sistem Uzmanı ve Siber Güvenlik Ofis Yöneticisi pozisyonunda çalışmaktayım.Başlıca uzmanlık alanlarım arasında Sistem yöneticiliği ve Siber Güvenlik gelmektedir.Asp.net ile Proje Geliştirme (2015), Bilgisayar Mühendisliğine Giriş (2020), Güvenlik Tasarım Desenleri (2022) kitaplarının yazarıyım.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir