Web Api Xml Yada Json Döndürmek
Normalde HttpRequest işleminde Tarayıcıya default Xml Fiddler’da ise Json döner App_Start/WebApiConfig.cs’e config.Formatter kodunu ekleyerek default dönecek tipi seçebiliriz
Web Api Authorization İşlemleri
Authorization bizim rolleme mekanizması kurmamızı sağlar yani hangi tip kullanıcı hangi isteklere erişebilsin gibi kontrolleri sağllar.Biz daha önce Database’imizde Users tablomuzda 2 kullanıcı oluşturup Role Sütununa birine U (User) diğerine A (Admin) değişkenlerini tanımlamıştık I.Daha önce oturum işlemleri için [Authorize] attribute’unu kulllanmıştık, Rolleme yapmak için kendi Authorize attribute’unu kendim yazmam gerekiyor yani bir CustomAuthorize yazacağız.…
Web Api Authentication işlemleri
Her kullanıcıya özel bir secret key (APIKey) vererek, servisime gelen isteği yapan kullanıcıda, benim belirlediğim key var ise (yani benim veri tabanımda o kullanıcı var ise) istek cevaplansın yoksa unauthorized dönsün şeklinde oturum kontrolü yapmak istiyoruz. Authentication : Kullanıcı başarılı bir şekilde giriş yapmış mı? Authorization : Giriş yapan kullanıcın hakları Apikey : Secret Key…
Web Api ExceptionFilterAttribute Kullanımı
Try catch blokları ile yaptığımız işlem kullanışlı değil yani her method için gelerek Try Catch bloğu yazmak istemeyiz. API’de hata geldiği zaman bunu tek bir noktadan yönetmek istiyoruz. I. Project SağTık>Add>Folder : Attributes ismini verdik > Bu klasör içerisine ApiExceptionAttribute.cs ismine class ekledik, Bu class’ı ExceptionFilterAttribute class’ından miras alıyoruz. Bu class’taki OnException methodunu override ettik.…
Web Api de Hata Yönetimi
Biz projeyi yazarken hata almasak da front end developer ya da kullanıcı bazı hatalar alabilir. Eğer oluşabilecek hataların nedenini projede döndürmediysek front end developer’a ya da diğer kullanıcılara çok genel bir hata olan 500 Internal Server hatası döner. Bu bazen sıfıra bölünme hatası da olabilir, sql bağlantı hatası da olabilir. Spesifik olarak hata tipini de…
Web Api Routing
Projemizdeki url’lere şekil vermemizi sağlar. App_Start/WebApiConfig dosyamızda default olarak api/{controller}/{id} şeklindedir. Controller ve Id, değişken olduğı için süslü parantez içerisinde. Buradaki herhangi bir şeyi değiştirebiliriz örn api yerine services yazarsak domain/services/cont şekl. çalışırAyrıca aynı yerde defaults: new {id=RouteParameter.Optional} //Yani id opsiyonel, isteğe bağlıdır diyor CRUD işlemleri için örneğin method ismi Get ya da GetLanguages vs…
Web Api Scaffolding Kullanımı
Scaffolding CRUD işlemlerini otomatik olarak kodlarını oluşturmamızı sağlayan bir araçtır. Örneğimizde Langugages tablosu mevcuttu ve biz buna manuel olarak CRUD işlemlerini yazmıştık şimdi Sql’e gidip başka bir tablo oluşturalım ve bu sefer CRUD işlemlerini scaffolding kullanarak yapalım. SqlServer’a girdik Users isminde tablo oluşturduk UserId-int-PrimaryKey, UserKey-uniqueidentifier-Default Value or Binding:(newid()), Name- Nvarchar(50), Role-Nvarchar(50) olarak satıları yaptık. UserKey’deki…
Wep API IHttpActionResult Interface ini Kullanma
Daha önce Status Code OK döndürmek için Request.CreateResponse(HttpStatusCode.Ok, languages) diye yazıyorduk bunu IHttpActionResult kullanarak Ok(languages) şeklindnde çok kısa bir biçimde yapabiliriz Aynı şekilde return Request.CreateResponse(HttpStatusCode.NotFound) şeklinde yazıyorduk NotFound(); yazarak yine kısaltabiliriz Controllerda ilgili methodumuza gittik önceden methoda HttpResponseMessage tipinde diyip Request.CreateResponse(HttpStatusCode.Ok) diye uzun uzun yazıyorduk şimdi methoda IHttpActionResult tipinde değer dönecek diyip direk Ok(languages) şeklinde…
Wep API Put ve Delete Metotlarının Standartlaştırılması
Put ve delete methodlarında kullanıcıdan bize bir id geliyor fakat id’ye ait kayıt var mı yok mu onu kontrol etmemiz gerekli, bunun yanısıra kayıt var fakat kullanıcıdan gelen model validasyon kurallarına uygun mu onu da kontrol etmeliyiz I. Gelen Id’ye ait bir data var mı yok mu onu kontrol etmek için TblLanguagesDAL’a gidip methodumuzu yazdık…
Web Api Post Metodunu Standart Hale Getirme Ve Validation İşlemleri
I. Controllerdaki Create methodumuzdaki dönüş tipini yine HttpResponseMessage yaptık ve Created status code’u ile language object’imizi (kullanıcıdan girdi olarak aldığımız object) döndürdük II. Validation Control yaparsak örneğin yıl alanı zorunlu olsun bunun için öncelikle EntityFramework’ün oluşturduğu TblLanguages’a gidip yıl alanına Required ekledik III. Şimdi Date alanı girilmeyince ekleme yapmaz fakat genel bir hata döndürür biz…
Web Api Get Metodumuzu Standart Hale Gelirme
Şu ana kadar API’mızda hatalar mevcut. Öncelikle kullanıcı bize request (istek) yapıyor bizim ona bir response (cevap) göndermemiz gerekli Örneğin biz https://localhost:44366/api/languages/4 yazıp GET isteğinde bulunduğumuz zaman status kod 200 (başarılı) olarak döndü fakat https://localhost:44366/api/languages/444 dersek olmayan bir kaydı çağırırsak yine 200 döndü ama burda kayıt olmadığı için farklı bir status code dönmeli Solution/WebServicesAPI/LanguagesController’a gittik…
Fiddler ile Api nin Test Edilmesi
Get methodlarını doğrudan projeyi çalıştırarak test edebiliriz ama post, put ve delete methodlarını test etmemiz için bir arayüze ihtiyacımız var. Arayüz olmadan Fiddler programı ile bu methodları arayüz hazırlamadan test edebiliriz. Fiddler’ı indirdik kurduk. Projeyi çalıştırdık (VS’nun Local IIS’inde çalışacak kendi Local IIS’imize de kurabiliriz). Fiddler’ın Composer tab’ına geldik url’imizi yapıştırdık (https://localhost:44366/api/languages) soldan method’umuzu seçip…
Web Api ile CRUD Fonksiyonlarını Hazırlama
I. Öncelikle db hazırladık EntityFramework DbFirst kullanacağız II.Projemizde Veritabanı işlemleri ile API’mızı birbirinden ayırmak istiyoruz o yüzden iki katmanlı yapacağız, CRUD işlemlerimizi DAL’da tutacağız bunun için Boş bir solution oluşturdukFıle>New Project>Other Project Types>Visual Studio Solutions>Blank Solution seçip Projeye isim verdik. III.Solution SağTık>Add>New Project>Class Library seçip ProgammingDAL ismini verdikIII.I. ProgammingDAL Sağ Tık>Add>New Item>Data>ADO.NET Entity Data Model>ProgammingModel…
Web Uygulamasından Api ye Bağlanmak
I.File>New Project>Web>Asp.Net Web Application>Empty Project SağTık>Add>HTML PageProjemize Jquery ile bir ajax isteğinde bulunacağımız için Manage Nuget Packages>Browse:JQuery kurulur ve Scripts>jquery-3.5.1.min.js dosyası sürüklenerek sayfaya eklenir. II. Projemizle, Web API projemizin domainleri farklı dolayısıyla hata verir. Hatayı giderebilmek için Web API projemize gidip farklı bir domainden istek gelirse yine cevapla dememiz lazımWebServicesWebAPI projemize gittik>Manage NuGet Packages>Browse: Cors…
Windows Form Uygulamasından Web Api ye Bağlanma
Bir WinForm uygulaması oluşturalım ve oluşturduğumuz Web API’den datalari çekelim. Project>Add>Windows>Windows Form Application>bir buton ve iki label attık
Web API Projesini Local IIS’e Kurma
Oluşturduğumuz projeye başka bir uygulamadan bağlabilmek için API’yi Local IIS’e kurmak zorundayız amaç farklı platformlardan API’ya bağlanıp dataları ortak bir şekilde çekmek bu bir android projesi de olabilir Ios’te winform ya da web uygulaması daNormalde oluşturduğumuz proje çalıştır dediğimiz zaman proje Visual Studio’nun kendi IIS’inde çalışır, biz bunu pcnin Local IIS’ine kuracağız. I. IIS kurulu…
İlk Web API Projemiz
Visual Studio’yu açtık. File>New>Project>Web>Asp.Net Web Application projemize isim verdik:WebServicesWebAPI>Empty, Web API seçilir Controllers : SağTık>Add>Controller>Web API 2 Controller-Empty
Asp.Net ve HTTP Metotları
ASP.NETSites* MVC (Popülerdir)* Web Pages (cshtml uzantılı sayfalar)* Web Forms (Popüleratisini yitirmiş eski bir teknolojidir. Microsoft geliştirmeyi bıraktı)* Single Pages (Angular ile popüler hale geldi)ServicesWeb API (Angular’la beraber bir Web API servis uygulaması yapılabilir)SignalR (Client istekte bulunmadan clienta veri gönderilir.Örneğin maç sonuçların otomatik yenilenmesi, chat yaparken sayfayı yenile demeden arkadaşımızın yazdığının bize gelmesi) Bizim için…
Asp.Net Web API Giriş
Web API, bizim http protokolleri izleyerek internet bağlantısı olan herhangi bir ya da birden fazla cihazla (pc,telefon,akıllı saat…) veri alışverişi yapabilmemizi sağlar. İşletim sistemi önemli değildir. (Ios, Andoid, Windows…) bu cihazlarla iletişimi bir web servis yazarak kurabiliriz. Veritabanımızdaki ürünleri getir, ürün ekle, ürün sil, en pahallı ürünü getir gibi methodları http protokolü üzerinden paylaşırız. Servislerde…
