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

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

1

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 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

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.

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 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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

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

Yorum Yap

Yazar Hakkında

Elektrik Bilgisayar Mühendisliği Tezli Yüksek Lisans programı mezunuyum. Konya Ticaret Odası Karatay Üniversitesi Bilgi Teknolojileri Araştırma Uygulama Merkezinde 2016 yılı itibariyle bilgisayar mühendisi olarak çalışmaktayım.  Başlıca uzmanlık alanlarım arasında Asp.Net Web Forms, Asp.Net MVC, C# ve SQL Server gelmektedir. Milli Eğitim Bakanlığı bünyesindeki eğitim merkezlerinde bilgi teknolojileri ve yazılım konularında öğreticilik ve danışmanlık yaptım. Çeşitli AB destekli projelerde yazılım sorumlusu olarak görev aldım. Çalışmalarımı Secure Design Pattern, Yazılım Güvenliği, Linux, Cisco, Huawei CLI, .Net Core, Siber Güvenlik, Windows Sunucu Yönetimi ve bilgi güvenliği yönetim sistemi konularında ilerletmekteyim. Asp.net ile proje geliştirme isimli kitabın yazarıyım.

Yorum Yap