ASP.NET Core 3.1 ile Koronavirus API Geliştirmek :)

Karantidayken bir kod egzersizi yapmak iyi bir fikir gibi geldi ve bu egzersiz gündemle alakalı olsun istedim :)

Senaryomuz şöyle: Ülke çapında koronavirus taşıyan hastaların bilgilerinin kayıt edilip görüntülenebileceği basit bir sistem geliştirelim.

Endpointler ise şöyle:

1-)Infected

  • Get, Id ile hasta bilgilerinin çekilmesi
  • GetAll, Tüm hastaların çekilmesi
  • Add, Yeni hasta kaydı
  • Update, hasta güncelleme
  • Delete, hasta silme

2-)User

  • Login, Kullanıcı girişi
  • Register Kullanıcı kaydı

Swagger görüntüsü ise şöyle:

Authentication ve Authorization işlemleri için JWT kullandım ve veritabanında parolaları saklamak için Bcrypt ile hashledim.

Ayrıca,

Bu basit endpointleri implemente ederken kendime bazı teknik zorluklar hazırladım;
Bunlardan ilki “Localde çalışıyodu??!!” sorunlarının önüne geçebilmek için uygulamanın dockerize edilmesi ikincisi ise basit bir notification altyapısı hazırlanmasıydı. Altyapıyı hazırlarken notificationların hangfire ile backgroundjob üzerinden atılmasını sağladım bu sayede uzun süren notification işlemleri http requesti boş yere bekletmemiş oldu. Son olarakta uygulamayı performans bakımından güçlü olması için uçtan uca asenkron şekilde geliştirilmesini hedefledim.

Ayrıca uygulama için docker-compose hazırladım bu compose içerisinde mariadb, phpmyadmin ve uygulamanın dockerize hali bulunmaktadır bu compose, docker-compose yüklü bir sistemde docker-compose up -d komutuyla ayağa kaldırıldığında 5000 portundan .net core uygulaması 8000 portundan ise phpmyadmin hazır hale gelecektir :)

Github repo: https://github.com/ismkdc/CoronaVirusApi