Coder Social home page Coder Social logo

fsweb-s19d1-maven's Introduction

Java Spring REST API

Proje Kurulumu

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.

Hedeflerimiz:

Fruits & Vegetables Rest Api

Başlangıç

  • Var olan spring projeniz içerisine aşağıdaki dependencyleri ekleyiniz. Var olan dependencyleri sakın çıkarmayın.
  • İçerisinde Spring Web, Spring Data JPA, Lombok, Postgresql driver dependencyler eklenmeli.
  • Maven dependency management sistemini kullanarak tüm dependencyleri install edin.
  • Uygulamanızı 8080 portundan ayağa kaldırın.
  • Meyve ve sebzeler için bir rest Api oluşturacağız.

Görev 1

  • ana paketiniz altında controller, services, dao, entity, exceptions isminde 5 adet daha paket oluşturunuz. .
  • entity paketinin altına Fruit ve Vegetable isimli iki tane sınıf oluşturunuz.
  • Fruit sınıfı id, name, price, FruitType isimli 4 fielda sahip olmalı. FruitType enum olmalı(SWEET, SOUR değerlerini alabilir.)
  • Vegetable sınıfı id, name, price, isGrownOnTree isimli 4 fielda sahip olmalı.
  • Fruit ve Vegetable sınıfları project lombok ve Jpa annotationlarını kullanmalıdır.

Görev 2

  • dao paketi altına FruitRepository ve VegetableRepository interfacelerini oluşturmalısınız.
  • Bu sınıflarda tüm crud işlemleri yapılabilmeli.
  • Bunların dışında hem FruitRepository için hem VegetableRepository için "ücrete göre azalan sırada" tüm fruit ve vegatables sıralayan bir method yazmalısınız.
  • Hem FruitRepository için hem VegetableRepository için "ücrete göre artan sırada" tüm fruit ve vegatables sıralayan bir method yazmalısınız.
  • Hem FruitRepository için hem VegetableRepository yollanan bir parametre name içerisinde geçiyorsa geçtiği tüm kayıtları dönen bir metod yazmalısınız.

Görev 3

  • service paketi altına FruitService ve FruitServiceImpl sınıflarını oluşturmalısınız.
  • service paketi altına VegetableService ve VegetableServiceImpl sınıflarını oluşturmalısınız.
  • Dao sınıfları ile arasında Dependency Injection ilişkisini kurmalısınız.
  • Tüm dao methodları Override edilmeli.

Görev 3

  • FruitController ve VegetableController isimli 2 tane controller yazmalısınız.
  • Amacımız CRUD işlemlerini tanımlayan endpointler yazmak.
  • [GET]/workintech/fruits => tüm fruits kayıtlarını price göre artan sırada dönmeli.
  • [GET]/workintech/fruits/{id} => İlgili id deki fruit objesini dönmeli.
  • [GET]/workintech/fruits/desc => tüm fruit kayıtlarını price göre azalan sırada dönmeli.
  • [POST]/workintech/fruits => Bir adet fruit objesini id değerine göre ya veri tabanına ekler. Ya da var olan değeri update eder.
  • [POST]/workintech/fruits/{name} => Bir adet name değişkeni alır ve fruit tablosu içerisinde geçen tüm fruitleri döner
  • [DELETE]/workintech/fruits/{id} => İlgili id değerindeki fruit objesini listeden siler.
  • VegetableController
  • [GET]/workintech/vegetables => tüm vegetables kayıtlarını price göre artan sırada dönmeli.
  • [GET]/workintech/vegetables/{id} => İlgili id deki vegetable objesini dönmeli.
  • [GET]/workintech/vegetables/desc => tüm vegetables kayıtlarını price göre azalan sırada dönmeli.
  • [POST]/workintech/vegetables => Bir adet vegetables objesini id değerine göre ya veri tabanına ekler. Ya da var olan değeri update eder.
  • [POST]/workintech/vegetables/{name} => Bir adet name değişkeni alır ve vegetable tablosu içerisinde geçen tüm vegetable değerlerini döner
  • [DELETE]/workintech/vegetables/{id} => İlgili id değerindeki vegetable objesini listeden siler.

Görev 3

  • PathVarible olarak id değeri 0'dan küçük yollanırsa api hata döndürmelidir.
  • PathVarible olarak id değeri veritabanında yoksa api hata döndürmelidir.
  • Insert/Update işlemlerinde eksik data yollanırsa api hata döndürmelidir.
  • Bunların dışında beklenmeyen bir hata olduğunda tüm hataları handle edebilecek global bir hata yakalama sistemi de olmalı.
  • Error Handling Global bir merkezden yönetilmeli. Controller sınıflarının altında olmamalı.
  • @Slf4j hata olduğunda servera log düşürülmelidir.
  • Bu kontrolleri yapan sınıflar exceptions ve validations paketleri altına eklenebilir.

Görev 4

  • Bir tane apinizin dönüş değerinde işlem başarılıysa hem objenin kendisini hem de işlemin başarılı olduğuna dair bir mesaj ekleyiniz.

fsweb-s19d1-maven's People

Contributors

dogancan94 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.