Bu proje Patika.dev & Teleperformance ortaklığıyla düzenlenen bootcamp bitirme projesidir.
✔️ .Net 6.0 frameworkü ile Asp.Net Core Web API ve ConsoleApp kullanıldı.
✔️ Onion Architecture kullanıldı.
✔️ Postman ile API test edildi.
✔️ API'nin dışardan kullanılabilmesi için token(JWT) bazlı bir yapı geliştirildi.
✔️ Event fırlatma işlemi için RabbitMQ kullanıldı.
✔️ Veritabanı işlemleri için EntityFrameworkCore, MSSQL ve MongoDb kullanıldı.
✔️ Identity ve Authenticate kullanıldı.
✔️ Projede Unit ve Entegrasyon testi yazıldı.
✔️ InMemoryCache kullanıldı.
- Özetle kullanıcıların almayı planladıkları ürünleri kaydedip takibini yapabilecekleri bir Web API.
- Kullanıcı kaydı, girişi ve doğrulama işlemleri yapılabilmekte.
- Kategori, başlık, ürünler(isim,miktar,tip), oluşturulma tarihi, tamamlanma tarihi ve tamamlanma durumu parametreleri Shopping List'i oluşturuyor.
- Get, Post, Delete, Patch, Put gibi HTTP metodları ile listeler ve ürünler için işlemler yapılabilmekte.
- Projeyi indirmek için :
git clone https://github.com/186-Teleperformans-Net-Bootcamp/EmrullahYilmazBitirmeProjesi.git
- Veritabanı oluşturmak için package manager konsolunda default project kısmında
BitirmeProjesi.Persistence
seçili olmalıdır. Ardından :
update-database
- Appsettings.json içindeki verilerin kendi bilgisayarınıza göre dizayn edilmesi lazım
{
"ConnectionStrings": {
"Default": "SQL Server Connection String;"
},
"MongoConnectionStrings": {
"ConnectionString": "MongoDb Connection String",
"DatabaseName": "Veritabanı adı",
"ShoppingListName": "ShoppingLists"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"JWT": {
"Audience": "http://google.com",
"Issuer": "http://google.com",
"Token": "This is my supper secret key for jwt"
}
}
- Kullanımı için projemizi derledikten sonra çalıştırıyoruz.
- Controller metodları
- Controller metodları
- Kayıtlı kullanıcı girişi
- Giriş yaptıktan sonra doğrulama yapılması ve token verilmesi
- Tokenin type'ını Bearer Token olarak seçtikten sonra ilgili yere yapıştırılması
- Shopping Listimizi hazırlamak için url query kısmına categoryname ve title kısmını girdikten sonra body tarafında shopping listingin oluşturulması
- Get yaptığımızda dönen response
- Get yaptığımızda dönen response
- Listenin tamamlanması için Patch metoduyla iscompleted değerinin 1 verilmesi
- Patch metoduyla eventin yakalanması ve RabbitMQ tarafından görülmesi
- Tamamlanan listenin MongoDb tarafından kayıt alınması ve gösterilmesi
- Doğrulamayı test etmek için token type'ını kapattıktan sonra sistemin kullanıcıyı Unauthorized etmesi