Modern, ölçeklenebilir ve güvenli bir e-ticaret backend API'si. .NET 8, Entity Framework Core ve JWT Authentication kullanılarak geliştirilmiştir.
- JWT Token tabanlı authentication
- Kullanıcı kaydı ve giriş sistemi
- Rol tabanlı yetkilendirme (Customer, Admin)
- Güvenli şifre hash'leme (BCrypt)
- CRUD işlemleri (Create, Read, Update, Delete)
- Kategori bazlı filtreleme
- Arama fonksiyonu (isim ve açıklama)
- Sayfalama (pagination) desteği
- Stok takibi
- Sepete ürün ekleme/çıkarma
- Miktar güncelleme
- Sepet görüntüleme (ürün detayları ile)
- Kullanıcı bazlı sepet yönetimi
- Sepet temizleme
- Sipariş oluşturma (sepetten)
- Sipariş geçmişi görüntüleme
- Sipariş detayı görüntüleme
- Sipariş durumu takibi
- Adres yönetimi
- Kategori CRUD işlemleri
- Ürün-kategori ilişkilendirmesi
- Admin yetkisi gerektiren işlemler
- .NET 8 - Modern C# framework
- Entity Framework Core - ORM
- SQL Server LocalDB - Veritabanı
- JWT Bearer - Authentication
- Swagger/OpenAPI - API dokümantasyonu
- BCrypt - Şifre hash'leme
- CORS - Cross-origin desteği
- Repository'yi klonlayın:
git clone https://github.com/alknbugra/ECommerceAPI.git
cd ECommerceAPI- NuGet paketlerini yükleyin:
dotnet restore- Veritabanını oluşturun:
dotnet ef database update- Uygulamayı çalıştırın:
dotnet run- API'yi test edin:
- Swagger UI:
https://localhost:7000/swagger - HTTP API:
http://localhost:5280
POST /api/auth/register - Kullanıcı kaydı
POST /api/auth/login - Kullanıcı girişi
GET /api/products - Tüm ürünleri listele
GET /api/products/{id} - Ürün detayı
POST /api/products - Yeni ürün ekle (Admin)
PUT /api/products/{id} - Ürün güncelle (Admin)
DELETE /api/products/{id} - Ürün sil (Admin)
Query Parameters:
categoryId- Kategori filtresisearch- Arama terimipage- Sayfa numarasıpageSize- Sayfa boyutu
GET /api/categories - Tüm kategorileri listele
GET /api/categories/{id} - Kategori detayı
POST /api/categories - Yeni kategori ekle (Admin)
PUT /api/categories/{id} - Kategori güncelle (Admin)
DELETE /api/categories/{id} - Kategori sil (Admin)
GET /api/cart - Sepet içeriği
POST /api/cart/add - Sepete ürün ekle
PUT /api/cart/update/{productId} - Ürün miktarını güncelle
DELETE /api/cart/remove/{productId} - Sepetten ürün çıkar
GET /api/orders - Sipariş geçmişi
GET /api/orders/{id} - Sipariş detayı
POST /api/orders - Yeni sipariş oluştur
GET /api/orders/all - Tüm siparişler (Admin)
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ECommerceDB;Trusted_Connection=true;MultipleActiveResultSets=true"
},
"JwtSettings": {
"SecretKey": "YourSuperSecretKeyThatIsAtLeast32CharactersLong!",
"Issuer": "ECommerceAPI",
"Audience": "ECommerceAPIUsers",
"ExpiryInHours": 24
}
}https://localhost:7000/swaggeradresine gidin- Authorize butonuna tıklayın
- JWT token'ı girin
- Endpoint'leri test edin
# Kullanıcı kaydı
curl -X POST "http://localhost:5280/api/auth/register" \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"123456","firstName":"Test","lastName":"User"}'
# Giriş yap
curl -X POST "http://localhost:5280/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"123456"}'
# Ürünleri listele
curl -X GET "http://localhost:5280/api/products"- Users - Kullanıcı bilgileri
- Categories - Ürün kategorileri
- Products - Ürün bilgileri
- CartItems - Sepet öğeleri
- Orders - Sipariş bilgileri
- OrderItems - Sipariş detayları
- User → CartItems (1:N)
- User → Orders (1:N)
- Category → Products (1:N)
- Product → CartItems (1:N)
- Product → OrderItems (1:N)
- Order → OrderItems (1:N)
- JWT Token authentication
- BCrypt şifre hash'leme
- CORS politikaları
- Rol tabanlı yetkilendirme
- SQL Injection koruması (EF Core)
- HTTPS desteği
FROM mcr.microsoft.com/dotnet/aspnet:8.0
COPY . /app
WORKDIR /app
EXPOSE 80
ENTRYPOINT ["dotnet", "ECommerceAPI.dll"]- Azure App Service oluşturun
- SQL Database bağlantısı yapılandırın
- Application Settings'i güncelleyin
- Deploy edin
Tüm endpoint'ler başarıyla test edilmiştir:
- Authentication: ✅ Çalışıyor
- Ürün Yönetimi: ✅ Çalışıyor
- Kategori Yönetimi: ✅ Çalışıyor
- Alışveriş Sepeti: ✅ Çalışıyor
- Sipariş Yönetimi: ✅ Çalışıyor
# Kullanıcı girişi
POST /api/auth/login
Response: JWT Token
# Sepete ürün ekleme
POST /api/cart/add
Response: CartItem with product details
# Sipariş oluşturma
POST /api/orders
Response: Order with total amount
# Sipariş geçmişi
GET /api/orders
Response: User's order history- Fork edin
- Feature branch oluşturun (
git checkout -b feature/AmazingFeature) - Commit edin (
git commit -m 'Add some AmazingFeature') - Push edin (
git push origin feature/AmazingFeature) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Buğra Alkın - @alknbugra
- GitHub: @alknbugra
- Email: [İletişim için GitHub üzerinden mesaj atın]
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!