Perşembe Ekim 17th, 2019

ASP.NET Web API

ile Ebubekir Sezer

Merhabalar,  Uygulama geliştirirken, uygulamada veri tutmak isteyebiliriz ve bu verileri tutarken local de veya gerçek zamanlı veri tabanları var. Daha önceki yazılarımda Sqlite’ın nasıl kullanıldığı hakkında yazı yazmıştım, bu sefer ise ASP.Net ile web api oluşturacağım. Bu yazıyı yazarken Microsoftun dokümantasyonunu takip ederek yaptım.

İlk olarak bir tane blank solution oluşturuyorum ve daha sonra ASP.NET Core Web Application oluşturuyorum ve API şeklinde olması için api’yi seçiyorum.  Projenin adını XamarinDBService yaptım. Projemiz oluştuktan sonra Models adında bir klasör oluşturuyorum. Models içerisinde bir Entity class’ı ve Person class’ı oluşturuyorum. Entity class’ı içerisine ID veriyorum ve başka modeller oluşturursam tekrar yazmak yerine Entity’den miras alacağım. Person class’ı içerisinde ise İsim ve Soyisim tutacağım.

namespace XamarinDBService.Models
{
    public class Entity
    {
        public string ID { get; set; } = Guid.NewGuid().ToString();
    }
}
namespace XamarinDBService.Models
{
    public class Person : Entity
    {
        public string Name { get; set; }
        public string Surname { get; set; }
    }
}

Modelleri oluşturduktan sonra gerekli olan paketleri eklememiz gerekiyor. Microsoft. EntityFrameworkCore. SqlServer ve Microsoft.EntityFrameworkCore.InMemory paketlerini projemize ekliyoruz.

Şimdi Model klasörüne gidip PersonContext adında bir class oluşturalım ve bu class’da DBContext‘den miras alalım. Daha sonra şu kodları yazalım;

namespace XamarinDBService.Models
{
    public class PersonContext : DbContext
    {
        public PersonContext(DbContextOptions<PersonContext> options) : base(options)
        {

        }
        public DbSet<Person> People { get; set; }
    }
}

Yukarıdaki kodu ekledikten sonra Startup.cs dosyasına gidip ConfigureServices altında şu kodu yerleştirelim;

public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<PersonContext>(opt => opt.UseInMemoryDatabase("PeopleList"));

            services.AddControllers();
        }

Projemize Get,Post,Put,Delete işlemlerimizi yapabilmemiz için Controller eklememiz gerekiyor. Bunun için Controller klasöründe sağa tıklayıp yeni Controller dememiz lazım ve daha sonra controller’ı API Controller with actions, using Entity Framework olarak seçmemiz lazım. Bu controller’ın model class’ını Person, Data Context class’ını ise PersonContext diyerek Add’e tıklayalım.

PeopleController içerisinde ve Post methodu altında return edilen action’da GetPerson‘dan önce nameof eklmemiz lazım ve işlemimiz tamamlanacaktır.

return CreatedAtAction(nameof(GetPerson), new { id = person.ID }, person);

Postman kullanarak Get, Post, Update, Delete işlemlerini yapabilirsiniz.

Servisimizi local’de doğru çalıştığından emin olduktan sonra, proje üzerinde sağa tıklayarak publish diyerek yeni AppService oluşturun daha sonra’da servisimizi publish edelim. Bir sonraki yazımda bu servisi Xamarin ile geliştireceğim mobil uygulamaya nasıl bağlanacağını göstereceğim.

Soru ve yorumlarınızı e-mail veya yorum olarak belirtirseniz sevinirim.