Web Api ve Web Api2

Api nedir? Ne işe yarar?

Öncelikle Api nin ne olduğundan bahsedelim, API’nin açılımı “Application Programming Interface” dir, İngilizceden direkt Türkçeye çevirildiğinde ise “Uygulama Programlama Arayüzü” olarak geçer. Belli bir programın dışarıya açılan belli kapıları gibidir, burada iceberg’in görünen yüzü gibi bir benzetme de yapabiliriz. Api’ler bu bağlamda birbirinden bağımsız uygulamaların görünen yüzlerini belirli standartlar(Api alt yapısına göre farklılıklar gösterir) ile konuşturmaya yarar. Mantık olarak bir sunucu(server) ve bir istemci(client) kapsamında ele alınabilir.

Neden Apiler’e ihtiyaç duyuyoruz?

Çok basit olarak mobil uygulamaları örnek verebiliriz. Hepimizin de bildiği üzere günümüzün işlemci teknolojilerinin geldiği noktada mobil aygıtlar oldukça yaygınlaştı. Buna bağlı olarak ta mobil uygulama gereksinimleri arttı. Mobil uygulamalar(VB.Net, C#, Java, Objective-C yada diğer dillerden herhangi birini biliyor olmak mobil uygulamalar yazmanız için aşağı yukarı yeterli olacaktır, aşağı yukarı diyorum çünkü mobil platformlar, web veya masaüstü platformları gibi değil kendine özgü durumları var.) üzerinden servis ile konuşuruz ve mobil bir aygıtta yapamayacağımız yada yapmamamız gereken bazı işlemler, bazı hesaplamalar yaparız. Bunun sonucunda da mobil uygulamaya nesne, nesneler veya istediğimiz formatta mesaj döneriz.

Neden WCF değil Asp.Net Web Api?

Uygulamalar yerine göre birbirinden bağımsız platformlarda yazılmış olabilirler, Web Api’ler REST desteği sayesinde platform bağımsız olarak tüketilebilirler.Microsoft yatırımlarını Web Api’ye yöneltmiş durumda, 2012 yılı sonunda ise resmi olarak WCF desteğini bırakacağını duyurdu. Kaynak(2013 yılında kaynak da silinecektir. )

WCF ile Web Api arasındaki en büyük farklardan birisi Web Api’lerin tamamen REST üzerine kurulu olmasıdır. REST mimarisi temelde Proxy’ye ihtiyaç duymaksızın HTTP istekleri ile basitçe gerçekleştirilebilen Get, Post, Put, Delete ve benzeri metotlarını destekler. Bu sayede de nereden ve hangi uygulamadan istekte bulunulursa bulunulsun, özel durumlar dışında Web Api’ye erişilebilecektir. Kısacası HTTP metotları kullanıldığı için bu bir tarayıcı isteği dahi olabilir. Diğer HTTP metotları ve ayrıntı için bu wiki bağlantısını inceleyin.

Web Api’lere herhangi bir kısıtlama getirilmediği sürece, istemcinin talebine göre jSon, Xml gibi formatlarda çıktı verebilirler. Haricen yine System.Net.Http.Formatting isim alanı altında bulunan MediaTypeFormatter sayesinde media type desteği de sunulmuştur, bu destek sayesinde istemciye yanıtı farklı formatlarda da dönebilmemiz mümkün. Örneğin Web Api kullanarak mp3 stream eden bir servis yazabilirsiniz(Örn: TTNet Müzik), yada csv formatında Excel çıktısı alabilirsiniz.

Dikkat çekici bir diğer kazancı da OData desteğidir. İstemci belirli anahtar kelimeler ile istekte bulunduğunda dönecek veriye filtre uygulayabilir, sıralatabilir. Bunun için istek adresine /?${Parametre} şeklinde parametreler göndermeniz yeterli olacaktır. Kullanılabilecek anahtar kelimeler orderby, top, skip, filter, select, vs gibidir, anahtar kelimelere buradan bakabilirsiniz. Oldukça basit bir şekilde veriyi arzu ettiğimiz koşullara göre isteyebiliriz. Elbette ki bu desteği kullanabilmek için IQueryable nesneler dönüyor olmamız gerekmektedir.

Buradan ilgili yardımcı dökümanları inleyeceleyebilirsiniz.

Buradan poster şeklideki pdf dosyasını erişebilirisiniz.

 

Kaynak:http://www.erenguvercin.com

Add comment

The file '/Custom/Widgets/Calendar/widget.cshtml' does not exist.The file '/Custom/Widgets/Category list/widget.cshtml' does not exist.The file '/Custom/Widgets/Tag cloud/widget.cshtml' does not exist.The file '/Custom/Widgets/Page List/widget.cshtml' does not exist.The file '/Custom/Widgets/Month List/widget.cshtml' does not exist.