PhoneApp

Basit bir telefon rehberi uygulamasıdır. Microservis yapısıdr.

Mimari

API Kullanımı

Servis Adresi

http://localhost:5000/

Tüm kişileri getir

  GET /userservice/users

Kişi detay getir

  GET /userservice/users/{id}
Parametre Tip Açıklama
id int Gerekli. Çağrılacak kişinin id değeri

Kişi Kaydet

  POST /userservice/users
Parametre Tip Açıklama
name string Gerekli. Oluşturulacak kişinin ad değeri
surname string Gerekli. Oluşturulacak kişinin soyad değeri
companyName string Gerekli. Oluşturulacak kişinin firma değeri

Kişi Sil

  DELETE /userservice/users/{id}
Parametre Tip Açıklama
id int Gerekli. Silinecek kişinin id değeri

Kişiye İletişim Bilgisi Ekle

  POST /userservice/users/contact/{id}
Parametre Tip Açıklama
id int Gerekli. Oluşturulacak iletişim bilgisinin ait olduğu kişinin id değeri
informationType string Gerekli. Silinecek kişinin id değeri(phone, email, address)
content string Gerekli. Silinecek kişinin id değeri

İletişim Bilgisi Sil

  DELETE /userservice/users/contact/{id}
Parametre Tip Açıklama
id int Gerekli. Silinecek iletişim bilgisinin id değeri

Tüm raporları getir

  GET /reportservice/reports

Rapor detayı getir

  GET /reportservice/reports/{id}
Parametre Tip Açıklama
id int Gerekli. Çağrılacak raporun id değeri

Rapor Talebi Oluştur

  POST /reportservice/reports
Parametre Tip Açıklama
location string Gerekli. Raporun oluşturulacağı lokasyon bilgisi

Consumer tarafından talebin oluşturulması için istek yapılacak endpoint

  POST /reportservice/generate
Parametre Tip Açıklama
reportId int Gerekli. Oluşturulacak raporun id değeri

Bilgisayarınızda Çalıştırın

Projeyi klonlayın

  git clone https://github.com/hakanguzel/PhoneApp

Proje dizinine gidin

  cd PhoneApp

Gerekli paketleri yükleyin

  dotnet restore

Projelerin konfiguresyonunu düzeltin

PhoneApp.Consumer.Report appsettings.{EnvironmentName}.json

PhoneApp.ReportService.API appsettings.{EnvironmentName}.json

PhoneApp.UserService.API appsettings.{EnvironmentName}.json

Migration

add-migration [MigrationName] -StartUpProject PhoneApp.UserService.API -project PhoneApp.Core.Infrastructure -v
update-database -StartUpProject PhoneApp.UserService.API -project PhoneApp.Core.Infrastructure -v

Projeyi çalıştırın

  dotnet run

Testler

Testleri çalıştırmak için aşağıdaki komutu çalıştırın

  dotnet test

Kullanılan Teknolojiler

.NET 6

DDD Design Pattern

CQRS Design Pattern

MediatR

RabbitMQ

MsSQL

Entity Framework

Ocelot

.Net CAP

Swagger

MoqAssist

Özellikler

  • Kişi oluşturma
  • Kişi kaldırma
  • Kişiye iletişim bilgisi ekleme
  • Kişiden iletişim bilgisi kaldırma
  • Kişilerin listelenmesi
  • Rehberdeki bir kişiyle ilgili iletişim bilgilerinin de yer aldığı detayların listelenmesi
  • Rehberdeki kişilerin bulundukları konuma göre istatistiklerini çıkartan bir rapor talebi
  • Sistemin oluşturduğu raporların listelenmesi
  • Sistemin oluşturduğu bir raporun detay bilgilerinin getirilmesi

Yol haritası

  • Ocelot'a swagger desteği

  • Proje'nin Dockerize edilmesi

  • Listelerde pagination yapısı

  • API'den gelen string haldeki enum değerlerden olmayanlar için anlamlı Exception gönderilmesi

Yazarlar