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ı
8585portundan ayağa kaldırın. - Tüm endpointlerin önüne
workintechgelmesi için ilgiliapplication.propertiesiçerisine ilgili düzenlemeyi yapın. - Spring devtools kullanarak uygulamanızın her değişim sonrasında kendisini restart etmesini sağlayınız.
- Uygulamamızda
mainmetodumuzun bulunduğu paket dışında iki adet daha paket tanımlayınız.modelvetaxisminde olabilirler. - Uygulamamızda
mainmetodumuzun bulunduğu sınıf dışında kalıcak şekilderestisimli bir paket oluşturunuz. restpaketi içerisindeDeveloperControllerisimli bir controller tanımlayınız.modelpaketi içerisindeDeveloperisminde bir adet class oluşturunuz.id, name, salary ve experienceisimli 4 adet değişken tanımlayınız.- experience değeri enum tipinde olmalı JUNIOR, MID ve SENIOR değerlerinden birini almalı.
Developersınıfı içerisinde tüminstance variabledeğerlerini set eden bir adet constructor tanımlayınız.Developersınıfını kullanan(ilişkinin nasıl olması gerektiğini siz tanımlamalısınız.) 3 ayrı sınıf tanımlayınız.JuniorDeveloper,MidDeveloper,SeniorDeveloper
- tax paketinin içerisine bir adet
Taxableisimli interface tanımlayınız. - İçerisinde
getSimpleTaxRate, getMiddleTaxRate, getUpperTaxRateisimli bir 3 adet metod tanımlayınız. DeveloperTaxbir adet sınıf yazınız. Taxable interface implement etmeli. ilgili metodları override etmeli.getSimpleTaxRate15d dönmeli.getMiddleTaxRate25d dönmeli.getUpperTaxRate35d dönmeli.
- DeveloperController sınıfı içerisinde bir adet
developersadında Map tanımlayın.Map<Integer, Developer>şeklinde değer almalı. @postConstructannotation kullanarak developers map objesini tanımlayınız.- DeveloperController sınıfı içerisinde bir adet constructor tanımlanmalı Taxable interface
Dependency Injectionyöntemiyle çağırılmalı. DeveloperTax sınıfını çağırmalı. - Amacımız CRUD işlemlerini tanımlayan endpointler yazmak.
- [GET]/workintech/developers => tüm developers mapinin value değerlerini
Listolarak döner. - [GET]/workintech/developers/{id} => ilgili id deki developer mapte varsa value değerini döner.
- [POST]/workintech/developers =>
id, name, salary ve experiencedeğerlerini alır, experience tipine bakarak uygun developer objesini oluşturup developers mapine ekler. JuniorDeveloper için salary bilgisinden salarygetSimpleTaxRate() değerini düşmelisiniz. Aynı şekilde MidDeveloper için salarygetMiddleTaxRate(), SeniorDeveloper için salary*getUpperTaxRate() değerlerini salary bilgisinden düşmelisiniz. - [PUT]/workintech/developers/{id} => İlgili id deki map değerini
Request Bodyiçerisinden aldığı değer ile günceller. - [DELETE]/workintech/developers/{id} => İlgili id değerini mapten siler.
- Tüm endpointlerin dönüş değerleri JSON formatında olmalı.
- Spring Actuators endpointlerini kullanarak /mappings, /health ile uygulamanızın durumunu kontrol edin
- /info nun çalışabilmesi için application.properties kısmına
name,description,versionkısımlarını tanımlayınız.