Asp .NET Rest Api Kurulumu

Api Nedir ?

Kısaca api, herhangi bir uygulamanın belli işlevlerini diğer uygulamalarında kullanabilmesi için oluşturulmuş bi modüldür.

Rest Api Nedir?

REST API, geliştiricilerin HTTP protokolünü kullanarak GET,POST,UPDATE ve DELETE gibi isteklerde bulunup, bu isteklere çeşitli formatlarda yanıt aldığı bir dağıtık sistemdir. REST (REpresentational State Transfer)Temsili Durum Aktarımı olarak Türkçede de kullanılır. Günümüzde iki sistemin haberleşmesinde kullanılan trend olmuş iki tip servis haberleşmesi var. Bir tanesi SOAP ve diğeri de REST dir;
REST prensiplerini sağlayan sistemler, RESTful olarak sıfatlandırılır.

REST (Representational state transfer) 

– REST client-server iletişimiyle ilgili bir mimari.
– HTTP protokolünü kullanır
– SOAP, RPC’nin aksine basit ve hafiftirler.
– Esnek olup, SOAP gibi keskin standartları yoktur.
– SOAP ile en büyük farkı, SOAP gibi bizi proxy kullanmaya, bir WSDL’e zorlamıyor olması.
– Entegre etmesi kolaydır.

Hadi başlayalım. Visual Studio da aşağıdaki gibi yeni bir proje oluşturun.

restfull
restfull
restfull
restfull
restfull
restfull
restfull
restfull

DenemeModel Adında bir class oluşturdum

DenemeModel.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;

namespace RestDemo.Models
{
[DataContract]
public class DenemeModel
{
[DataMember(Name=”name”)]
public string Name { get; set; }
[DataMember(Name = “surname”)]
public string Surname { get; set; }
[DataMember(Name = “age”)]
public int Age { get; set; }
[DataMember(Name = “location”)]
public string Location { get; set; }
}
}

 

Daha sonra Controller da düzenleme yapmamız gerekiyor.

DenemeController.cs

using RestDemo.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace RestDemo.Controllers
{
public class DenemeController : ApiController
{
// GET: api/Deneme
public IEnumerable<DenemeModel> Get()
{
var denemeModelList = new List<DenemeModel>();
for (int i = 0; i < 10; i++)
{
var denemeModel = new DenemeModel
{
Name=”Deneme”+i,
Surname=”Soyadım”+i,
Age=(i+5),
Location=”Doğum Yeri”+i
};

denemeModelList.Add(denemeModel);

}
return denemeModelList;
}

// GET: api/Deneme/5
public DenemeModel Get(int id)
{
return new DenemeModel
{
Name = “Deneme” + id,
Surname = “Soyadım” + id,
Age = (id),
Location = “Doğum Yeri” + id
};
}

// POST: api/Deneme
public void Post([FromBody]string value)
{
}

// PUT: api/Deneme/5
public void Put(int id, [FromBody]string value)
{
}

// DELETE: api/Deneme/5
public void Delete(int id)
{
}
}
}

 

Şimdi f5 yapıp çalıştıralım projeyi. Browserda açılan ana sayfada API ye tıklayın. Orada deneme controller’ımızı görebileceksiniz.

localhost:8888/api/deneme yazarsak da sadece xml verileri göreceğiz.

Şuan veriler bize otomatik olarak xml formatta geliyor. Bunu değiştirmek için birdençok yöntem var fakat ben size en basit olanını göstereceğim bu sayede json verilerini elde edebilieceğiz. App_start dosyasının altında Webapiconfig.cs dosyasını açıyoruz.Register’ın içine yapıştırıyoruz.

// Web API yapılandırması ve hizmetleri
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

bu sayede xml değil veriler json olarak dönüyor.

 

Dikkat!
Controller da Get nesnesi tanımlamak için isim Get ile başlamalı veya [HttpGet] kullanmalısınız.

[HttpGet]
public DenemeModel Get(int id)
{
return new DenemeModel
{
Name = “Deneme” + id,
Surname = “Soyadım” + id,
Age = (id),
Location = “Doğum Yeri” + id
};
}

Daha detaylı anlatım için Microsoft‘un kendi anlatımı olan sitesinden faydalanabilirsiniz. Kolay kodlar 😉

Firebird ile Hazırlamış olduğum küçük bir örnek kod
https://github.com/unalzafer/C-Rest-Web-Api-Firebird

İşinizi Kolaylaştıracak Web Siteleri
http://www.tutorialsteacher.com/webapi/web-api-tutorials

Eğer Türkçe Kaynak Arıyorsanız Size Kenan Beyin Anlatmış olduğu video serisini izlemenizi tavsiye edebilirim.
https://youtu.be/iPlWX05H3ao

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.