ASP.NET WEB API 2.1 Hello World

4 Mayıs 2014
Posted by Çağatay Yıldız
4836 Views
MVC

Bu yazımızda Visual Studio 2013 ortamında ASP.NET Web API 2.1 ile bir Hello World uygulaması yapacağız. Bilindiği üzere Web API ile verilerimi platform bağımsız olarak dışarıya json, xml gibi ortak formatlarda çıkarıyoruz. Böylelikle farklı platformlardan çıkan bu veriye kolaylıkla ulaşılabilmekte. Öncelikle yeni bir asp.net projesi açıyorum.

web api hello world

web api hello world

Daha sonra boş bir web api controller oluşturuyorum.
web-api-2
Bu controller dışarıya verilerimi xml veya json formatında çıkacak. Şimdi sıra geldi verilerimi doldurmaya. Models klasörüme Ninja isimli bir class ekledim. Class ım şu şekilde

    public class Ninja
    {
        public int Id { get; set; }
        public string Ad { get; set; }
        public bool OyundaMi { get; set; }
        public string Memleket { get; set; }

    }

Şimdi ise bu class ıma uygun bir biçimde verilerimi doldurup dışarıya açacağım. Verilerimi Contoller içerisinde dolduruyorum ve altına GetAllNinja isimli metodumla verilerimi dışarıya açıyorum

public class NinjalarController : ApiController
    {
        Ninja[] ninjas = new Ninja[]
        {
        new Ninja(){Id = 1, Ad = "Rafael",OyundaMi = true,Memleket = "İzmir"},
        new Ninja(){Id = 2, Ad = "Donatello",OyundaMi = true,Memleket = "Livorno"},
        new Ninja(){Id = 3, Ad = "Mikalenjelo",OyundaMi = false,Memleket = "Havana"},
        new Ninja(){Id = 4, Ad = "Leonardo",OyundaMi = true,Memleket = "Barcelona"}
        };

        public IEnumerable<Ninja> GetAllNinja()
        {
            return ninjas;
        }
    }

Oluşturduğum Ninjalar isimli api controller ım dikkat edersek apicontroller sınıfından miras almakta. Sıra geldi verilerimi url üzerinden göstermeye. projemi çalıştırdığımda url kısmına /api/ninjalar yazdığımda verilerim gelecek. ekran görüntüm şu şekilde
web-api3
Verilerimi XML formatında dışarıya açtım /api/ninjalar dediğimde default olarak getallninja metodu çalıştı. Buradaki route yapılandırması(apstart klasörü içerisinde webapi config class ında default route görebilirsiniz) ve neden default o metodun çalıştığını ilerleyen zamanlarda göreceğiz. Verimi eğer XML değil json formatında çıkarmak istersem yapmam gerek işlem oldukça basit(bu senaryoya göre birden fazla yol izlenebilir. Örneğin verilerimizin bir kısmını json başka bir controllerda xml formatında çıkarmak gibi) Global asax dosyamın içerisindeki App start metoduna aşağıdaki kodu yazıyorum

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

Bu şekilde aynı url den istekte bulunduğumda ise ekran görüntüm şu şekilde.
web-api-4
Böylelikle verilerimi json veya xml formatında dışarıya çıkardık. Bir sonraki yazıda url üzerinden id ye göre objemizi yakalayacağız ve örnek olarak Northwind db yi kullanacağız. Ayrıca metot isimlerinin taşıdığı anlamdan bahsedeceğiz.