ASP.NET Core ile Adım Adım Basit Bir Todo API Projesi Nasıl Yapılır?
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.
Eklediğiniz todo item’leri görmek için ise GET metodunu kullanarak listeleyebilirsiniz.
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! 🙏 🤗
Member discussion