Kafe API, modern yazılım geliştirme prensipleri ve güçlü .NET ekosistemi araçları kullanılarak geliştirilmiş, güvenli, ölçeklenebilir ve sürdürülebilir bir RESTful servis mimarisidir. Bu proje, bir kafe otomasyon sistemine ait temel API ihtiyaçlarını karşılamak üzere tasarlanmıştır.
Projemiz, en güncel ve performanslı .NET sürümü olan .NET Core 9 ile geliştirilmiştir. Bu sayede yüksek performans, çapraz platform desteği ve uzun vadeli sürdürülebilirlik sağlanmaktadır.
Projede Onion Architecture (Soğan Mimarisi) benimsenmiştir. Bu mimari katmanlı yapısı sayesinde:
- Kodun sürdürülebilirliği artar.
- Bağımlılıklar dış katmanlara doğru izole edilir.
- Domain merkezli bir yapı kurulmuş olur.
Uygulama içi olayları takip etmek, hataları analiz etmek ve sistem davranışlarını anlamak için Serilog kullanılmıştır. Log verileri JSON formatında veya dosyaya, veri tabanına gibi farklı ortamlara yönlendirilebilir.
AutoMapper, veri transfer objeleri (DTO) ile domain modelleri arasında otomatik eşleme yapar. Bu sayede manuel dönüşüm ihtiyacı ortadan kalkar ve kod tekrarının önüne geçilir.
API'yi test etmek ve görsel olarak incelemek için entegre Scalar UI arayüzü sağlanmıştır. Bu arayüz Swagger benzeri olup, kullanıcı dostu bir deneyim sunar.
Geliştirme sürecinde API uç noktaları Postman üzerinden test edilmiştir. Proje ile birlikte gelen koleksiyonlar sayesinde dış geliştiriciler kolayca test yapabilir.
İstemciden gelen verilerin doğruluğunu kontrol etmek için FluentValidation kullanılmıştır. Bu sayede:
- Okunabilir ve sade validasyon kuralları yazılır.
- Hatalı veri akışının önüne geçilir.
Kullanıcı yönetimi ve oturum kontrolü için ASP.NET Core Identity sistemi entegre edilmiştir. Roller, kullanıcılar ve parola politikaları ile detaylı kimlik doğrulama mekanizması oluşturulmuştur.
API'ye erişimi sınırlamak ve güvenli iletişimi sağlamak için JWT tabanlı yetkilendirme kullanılmıştır. Her kullanıcıya özel token ile erişim kontrolü yapılmaktadır.
Sistemin kötüye kullanılmasını engellemek için Rate Limiting (istek sınırlama) uygulanmıştır. Bu sayede:
- Bot saldırıları azaltılır.
- API'nin stabilitesi korunur.
Tüm uç noktalar, RESTful standartlarına uygun şekilde tasarlanmıştır:
- Kaynak temelli URL yapısı
- HTTP metodlarına uygun davranış (GET, POST, PUT, DELETE)
- Anlamlı HTTP durum kodları (status codes)
- HATEOAS prensibine açık tasarım

