Projeyi öncelikle forklayın ve clone edin. Daha sonra projeyi IntellijIDEA kullanarak açınız. README.md dosyasını dikkatli bir şekilde okuyarak istenenleri yapmaya çalışın. Proje sayımız ilerledikçe proje yönetimimizi kolaylaştırmak adına projelerimizi belli klasör kalıplarında saklamak işimizi kolaylaştırmak adına iyi bir alışkanlıktır. Örnek bir Lokasyon: Workintech/Sprint_1/Etud.
- Maven dependency management sistemini kullanarak tüm dependencyleri install edin.
- Uygulamanızı
8080portundan ayağa kaldırın. - Bir banka uygulaması için rest api dizayn etmeniz istenmektedir.
- Veri tabanı dizaynınız şu şekilde olmalı. Toplam 3 tablo yazmanız gerekmektedir.
addresstablosu => (id, street, no, city, country, description) kolonlarından oluşmalı.idprimary_key olarak işaretlenmeli.descriptionalanı optional set edilmelicustomertablosu => (id, first_name, last_name, email, salary, address_id) bilgilerini içermeli.- Her Customer sadece bir tane adrese sahip olabilir.
- Herhangi bir customer ilgili tablodan silinirse Customer'a ait olan address bilgisi de veri tabanından silinmelidir.
- Herhangi bir adress bilgisi veri tabanından silinirse ilgili dataya sahip olan customer objesi veri tabanından silinmemelidir.
accounttablosu (id, account_name, money_amount, customer_id) kolonlarından oluşmalı.idprimary_key olarak işaretlenmeli.- Bir Customer'in birden çok Account'u olabilir.
controller,service,dao,entity, isminde 4 adet daha paket oluşturunuz.entitypaketinin altınaAddress,Customer,Accountisimli üç tane sınıf oluşturunuz.Address,CustomerveAccountsınıfları project lombok annotationlarını kullanarak oluşturulmalılar.AddressveCustomersınıflarının birbirleri arasındaki ilişkiyi tanımlayan annotationları kullanın.(One-to-One)CustomerveAccountsınıflarının birbirleri arasındaki ilişkiyi tanımlayan annotationları kullanın.(One-to-Many)
-
AddressController,CustomerController,AccountControllerisimli 3 tane controller yazmalısınız. -
Amacımız CRUD işlemlerini tanımlayan endpointler yazmak.
-
[GET]/workintech/address => veri tabanaında kayıtlı tüm address bilgilerini döner.
-
[GET]/workintech/address/{id} => İlgili id deki address objesini döner.
-
[POST]/workintech/address => Bir adet address objesini veri tabanına ekler.
-
[PUT]/workintech/address/{id} => İlgili id deki address objesinin değerlerini günceller.
-
[DELETE]/workintech/address/{id} => İlgili id değerindeki address objesini siler.
-
[GET]/workintech/customers => veri tabanında kayıtlı tüm customer bilgilerini döner.
-
[GET]/workintech/customers/{id} => İlgili id deki customer objesini dönmeli.
-
[POST]/workintech/customers => Bir adet customer objesini veri tabanına ekler
-
[PUT]/workintech/customers/{id} => İlgili id deki customer objesinin değerlerini günceller.
-
[DELETE]/workintech/customers/{id} => İlgili id değerindeki customer objesini siler.
-
[GET]/workintech/accounts => veri tabanında kayıtlı tüm account bilgilerini döner.
-
[GET]/workintech/accounts/{id} => İlgili id deki account objesini dönmeli.
-
[POST]/workintech/accounts/{customerId} => Parametre olarak gelen id ile ilgili customeri bulur ve Account objesini Customer ile ilişkilendirip veri tabanına kaydeder.
-
[PUT]/workintech/accounts/{customerId} =>Parametre olarak gelen id ile ilgili customeri bulur ve Account objesinin yeni bilgilerini güncelleyip Customer ile ilişkilendirip veri tabanına kaydeder.
-
[DELETE]/workintech/accounts/{id} => İlgili id değerindeki account objesini siler.
- AccountResponse ve CustomerResponse adında 2 tane record oluşturunuz.
- Endpointlerin dönüş tipleri bu sınıfların tipinde olmalıdır.