Search

WEB API ve Kullanımı (WEB FORM)



0 yorum

WEB API ve Kullanımı (WEB FORM)

restful erenguvercinDaha önce Rest mimarisinden ve getirilerinden bahsetmiştim. Bu konudaki yazıma buradan ulaşabilirsiniz. SOAP mimarisinden daha esnek kullanımı olan REST mimarisi ile servisler ASP.NET ile Web API üzerinden geliştirilebiliyor.
Web API kullanımı ASP.NET MVC 4’e entegre bir şekilde geliyor. Bu şekilde ekstra işlemler yapmadan Web API leri kolaylıkla kullanabiliriz. Peki Web API leri Web Form ile kullanmak istiyorsak ne yapmalıyız? Bu konu hakkında Türkçe kaynak sıkıntısının olduğunu fark ettim ve kendime not olarak yazmaya karar verdim.
Geliştirmiş olduğumuz Web API’lere URL üzerinden ulaşıyoruz. URL’e yazmış olduğumuz adres ile direk Web API bağlantısı gerçekleşir ve görevini yerine getirir.

URL Route ile Global.asax içerisindeki Application_Start üzerinden bu durumu göreceğiz.
Şimdi veritabanını dahil etmeden basit bir Sınıf oluşturup, o sınıf üzerinden değerler girererek değerleri çağıracağımız bir Web API  yazalım. Bu değerleri hem tek tek hem de tamamını URL üzerinden çağırabileceğimizi göreceğiz.
Projemizin hikayesi Personeller üzerinden olacak. Personeller Sınıfı oluşturup, buraya personelNo, Adi, Yasi ve Meslek propertylerini yazacağız. Daha sonra oluşturmuş olduğumuz bir controller sınıfı ile bu Personeller nesnesine değer girip kayıt oluşturacağız. Son olarak Web API ile bu kayıtlara erişeceğiz.
Öncelikle Visual Studio ile File - New Project - ASP.NET Web Forms Application ile yeni bir Web Form projesi oluşturuyoruz. Ben projeme WebAPIGiris adını verdim.
Şimdi projemiz üzerinde yeni bir class oluşturuyoruz. Projemiz üzerinden sağ tıklayıp Add - NewItem - Class seçerek Personeller adını veriyoruz. Personeller sınıfımıza aşağıdaki kodları yazıyoruz.
Personeller.cs:
public class Personeller
    {
      public int personelNo { get; set; }
      public string Adi { get; set; }
      public int Yasi { get; set; }
      public string Meslek { get; set; }
    }

Şimdi http requestlerini işleyebileceğimiz bir Web API controller’ı oluşturmaya sıra geldi. Projemiz üzerinde sağ tıklayıp, Add - NewItem - Web API Controller Class (Web sekmesi altında bulabilirsiniz) diyerek Web API Controller Class’ımızı oluşturacağız. Ben ismine PersonelController adı verdim. Burada verilen ismin sonuna Controller(yada sizin belirlediğiniz sabit bir isim) yazılması Web API geliştirilirken alışkanlık haline getirilmeli, bu isim Routing işlemi yaparken bizim için belirleyici olacaktır.
Açılan class üzerinde Get, Post, Put ve Delete metodlarının hazır bir şekilde geldiğini göreceksiniz. Biz örneğimizde sadece Get metodunu kullanacağız. Post,Put ve Delete metodlarını isterseniz silebilirsiniz. Bu class üzerindeki kodlar aşağıda verilmiştir ve detayları açıklamalarla anlatılmıştır.
PersonellerController.cs:
public class PersonelController : ApiController
 {
    //Burada personellerimiz üzerine kayıtlar giriyoruz
    //ve bunları ekranda göstereceğiz
    Personeller[] personellerimiz = new Personeller[]
    {
      new Personeller { personelNo = 1,
          Adi = "Abdullah Eren Güvercin", Yasi = 23, Meslek = "Muhendis" },
      new Personeller { personelNo = 2,
          Adi = "Ali Taş", Yasi = 24, Meslek = "Programci" },
      new Personeller { personelNo = 3,
          Adi = "Erman Aktürk", Yasi = 27, Meslek = "Muhendis" } ,
      new Personeller { personelNo = 4,
          Adi = "Göksel Demirkan", Yasi = 23, Meslek = "Muhendis" },
      new Personeller { personelNo = 5,
          Adi = "Ayşe Yılmaz", Yasi = 32, Meslek = "Uzman" },
      new Personeller { personelNo = 6,
          Adi = "Burcu Gök", Yasi = 39, Meslek = "Muhasebeci" }
  };

   // GET api/
   //Bu metod ile tüm personeller çekilecektir
     public IEnumerable<Personeller> Get_TumPersoneller()
     {
        return personellerimiz;
     }

   // GET api//3
   //Örneğin 3 yazarak, personelNo'su 3 olan kişi çekilecektir.
     public Personeller Get_personelNoileGetir(int id)
     {
        var personel = personellerimiz.FirstOrDefault((p) => p.personelNo == id);
        if (personel == null)
        {
          throw new HttpResponseException(HttpStatusCode.NotFound);
        }
          return personel;
     }

    // GET api//Programci
    //Örneğin Programci yazarak, mesleği programcı olanlar gelecektir.
      public IEnumerable<Personeller> Get_MeslegeGoreUrunGetir(string meslek)
      {
        return personellerimiz.Where(
        (p) => string.Equals(p.Meslek, meslek,
        StringComparison.OrdinalIgnoreCase));
      }
    }

Şimdi sıra geldi Routing işlemlerini gerçekleştirmeye, bu kısım Global.asax içerisinde yer alan Application_Start metodunda yapılacaktır. Gelen isteklerin nasıl yönlendireleceğini gösteren bir kod yazacağız.
Öncelikle, Global.asax’ın üst kısmındaki using’lerin bulunduğu alana, using System.Web.Http kodunu ekliyoruz. Bu http sınıfı Web APIiçin kullanılacaktır.
Global.asax içindeki Application_Start metoduna aşağıdaki kodları yazıyoruz.
RouteTable.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = System.Web.Http.RouteParameter.Optional }
            );
Son olarak bu değerleri gösteceğimiz bir ASPX sayfası oluşturacağız. Proje üzerine sağ tıklayıp Add - New Item - Web Form ile aspx sayfamızı oluşturuyoruz, ben PersonelSayfasi.aspx olarak isimlendirdim.
Burada dikkat etmemiz gereken kısım javascript ile gerçekleştirilen kodlar, açıklamalar aşağıda verilmiştir.
Öncelikle Head kısmına jquery sınıfımızı eklemeyi unutmuyoruz. Projemiz üzerinde kullanılacaktır.
PersonelSayfasi.aspx:
  

Personeller

Personel No Ad Yaş Meslek



Aşağıdaki, görsellerde gösterildiği gibi kayıtlar Web API ardımıyla çekilebilir. Ayrıca URL(adres satırı) kısmına, Global.asax üzerinde belirttiğimiz Route'a göre adres yazarsak WebApi sonucu doğru bir şekilde görüntülenecektir.
Örneğin localhost://api/Personel/3 gibi bu şekilde yazarsak personelNo'su 3 olan kayıt gösterilecektir yada localhost://api/Personel yazarsak tüm kayıtlar gösterilecektir.


webAPI
personelNo ile kayıt çekilmesi

WEBAPI
Tüm Kayıtların Getirilmesi

0 yorum:

Yorum Gönder

Check Page Rank
DMCA.com