3 min read

ASP.NET Core ile Adım Adım Basit Bir Todo API Projesi Nasıl Yapılır?

ASP.NET Core ile Adım Adım Basit Bir Todo API Projesi Nasıl Yapılır?
Photo by Kevin Ku / Unsplash

Bu yazıda, ASP.NET Core kullanarak basit bir Todo API projesi nasıl yapılır, adım adım öğreneceksiniz. Proje geliştirme sırasında Entity Framework Core, Swagger ve InMemory Database kullanacağız. Eğer ASP.NET Core ile ilk defa çalışıyorsanız ya da basit bir proje yapmak istiyorsanız, bu rehber tam size göre!

1. Projeyi Oluşturalım

İlk olarak boş bir dizinde aşağıdaki komutları kullanarak Todo API projemizi oluşturalım:

dotnet new webapi --use-controllers -o TodoApi
cd TodoApi
dotnet add package Microsoft.EntityFrameworkCore.InMemory

Bu komutlarla birlikte hem projeyi oluşturuyor hem de Entity Framework InMemory kütüphanesini ekliyoruz. Ayrıca HTTPS sertifikasını onaylamak için şu komutu çalıştırabilirsiniz:

dotnet dev-certs https --trust

Eğer daha önce bu sertifika iznini vermediyseniz, bu adımı tamamlayarak HTTPS üzerinden projeyi çalıştırabilirsiniz.

2. Projeyi Çalıştırma ve Swagger Erişimi

Projeyi çalıştırmak için şu komutu kullanıyoruz:

dotnet run --launch-profile https

Bu komutla projemiz çalışmaya başlıyor ve Swagger arayüzüne tarayıcınız üzerinden şu adrese giderek erişebilirsiniz:

localhost:{port}/swagger/index.html

Swagger ile API endpoint’lerinizi test edebilir, GET, POST, PUT ve DELETE işlemlerini deneyebilirsiniz.

3. Basit Bir Todo API Projesi Oluşturalım

Şimdi, Microsoft'un dokümantasyonunda önerdiği gibi basit bir Todo API projesi yapalım.

Projede Models klasörü oluşturun ve içine TodoItem.cs adında bir dosya ekleyin:

// TodoITem.cs
namespace TodoApi.Models;

public class TodoItem
{
    public long Id { get; set; }
    public string? Name { get; set; }
    public bool IsComplete { get; set; }
}

Bu model, todo item’lerin yapısını tanımlayacak.

4. Entity Framework ile Database Bağlantısı

Projenize bir veritabanı eklemek için Entity Framework Core kullanacağız. Bunun için yine Models klasöründe bir TodoContext.cs dosyası oluşturalım:

// TodoContext.cs
using Microsoft.EntityFrameworkCore;

namespace TodoApi.Models;

public class TodoContext : DbContext
{
    public TodoContext(DbContextOptions<TodoContext> options)
        : base(options)
    {
    }

    public DbSet<TodoItem> TodoItems { get; set; } = null!;
}

Ardından Program.cs dosyamızda bazı ufak değişiklikler yapmamız gerekiyor:

Builder oluşturulduktan sonra, InMemoryDatabase kullanımını sağlayacak şu satırı ekleyelim:

builder.Services.AddDbContext<TodoContext>(opt =>
    opt.UseInMemoryDatabase("TodoList"));

En üst kısma şu kodları ekleyelim:

using Microsoft.EntityFrameworkCore;
using TodoApi.Models;

Bu adımlarla veritabanı bağlantımızı tamamlamış olduk.

5. Controller Oluşturma

Şimdi projemize bir Controller ekleyelim. Terminalde şu komutu çalıştırarak otomatik olarak Todo API için gerekli controller dosyasını oluşturabilirsiniz:

dotnet aspnet-codegenerator controller -name TodoItemsController -async -api -m TodoItem -dc TodoContext -outDir Controllers

Bu komutla birlikte Controllers klasöründe TodoItemsController.cs dosyası oluşturulacak. Bu dosya içerisinde GET, POST, PUT ve DELETE metodları da otomatik olarak eklenmiş olacak.

Post metodundaki return kısmını şu şekilde düzenleyelim:

[HttpPost]
public async Task<ActionResult<TodoItem>> PostTodoItem(TodoItem todoItem)
{
    _context.TodoItems.Add(todoItem);
    await _context.SaveChangesAsync();

    return CreatedAtAction(nameof(GetTodoItem), new { id = todoItem.Id }, todoItem);

6. Projeyi Çalıştırma ve Denemeler

Projeyi tekrar çalıştırmak için şu komutu kullanın:

dotnet run --launch-profile https

Sonrasında Swagger arayüzüne tekrar giderek denemeler yapabilirsiniz. Örneğin, bir TodoItem eklemek için POST metodunu kullanabilirsiniz.

Just do it todo'sunu ekleme

Eklediğiniz todo item’leri görmek için ise GET metodunu kullanarak listeleyebilirsiniz.

GET Metodu Çıktısı

Dilerseniz tarayıcınızda doğrudan şu adrese giderek JSON formatında verilerinizi görebilirsiniz:

<https://localhost>:{host}/api/TodoItems

Sonuç

Bu yazıda ASP.NET Core ile basit bir Todo API projesi oluşturmayı öğrendik. Swagger kullanarak API endpoint’lerini test ettik ve Entity Framework ile veritabanı işlemlerini nasıl gerçekleştirebileceğimizi gördük.

Bu adımlar sayesinde artık kendi projelerinize kolayca başlayabilir ve ASP.NET Core’un sunduğu güçlü özelliklerden faydalanabilirsiniz.

Bir sonraki yazımda görüşmek üzere! 🙏 🤗