
SpringBoot ile Rest API Oluşturmak | Şehir Örneği
Merhaba 🎈,
Buradaki yazımda SpringBoot kavramının ne demek olduğunda bakmıştık. Bugünkü yazımda yeni öğrendiğim SpringBoot framework ile Java API oluşturmayı anlatmak istiyorum.
İlk olarak https://start.spring.io/ sitesine giderek bir Spring projesi oluşturup indiriyorum. Daha sonra projeyi Intelij IDEA kullanarak açıyorum.
Bu örnekte şehirleri kodlarıyla tutan bir json yapı oluşturmak istiyorum. İlk olarak aşağıdaki gibi City modelimi oluşturuyorum.
package com.aleynaeser.cityApi.model;
import lombok.*;
import org.springframework.data.annotation.Id;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class City {
@Id
private String id;
@NonNull
private String city;
}
Daha sonra CityController sınıfını oluşturarak içerisine verileri yazıyorum ve id değişkenine göre filtreleme fonksiyonu ekliyorum. Ayrıca diğer şehirlerin eklenebilmesi için post methodunu oluşturuyorum.
package com.aleynaeser.cityApi.controller;
import com.aleynaeser.cityApi.model.City;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import static org.springframework.http.HttpStatus.OK;
@RestController
@RequestMapping("/cities")
public class CityController {
private static final List<City> cities = new ArrayList<>();
public CityController(){
//constructors of top 10 city to test
City city1 =new City("01","Adana");
City city2 =new City("02","Adıyaman");
City city3 =new City("03","Afyonkarahisar");
City city4 =new City("04","Ağrı");
City city5 =new City("05","Amasya");
City city6 =new City("06","Ankara");
City city7 =new City("07","Antalya");
City city8 =new City("08","Artvin");
City city9 =new City("09","Aydın");
City city10 =new City("10","Balıkesir");
City city11 =new City("11","Bilecik");
City city12 =new City("12","Bingöl");
City city13 =new City("13","Bitlis");
City city14 =new City("14","Bolu");
City city15 =new City("15","Burdur");
//adding the cities
cities.add(city1);
cities.add(city2);
cities.add(city3);
cities.add(city4);
cities.add(city5);
cities.add(city6);
cities.add(city7);
cities.add(city8);
cities.add(city9);
cities.add(city10);
cities.add(city11);
cities.add(city12);
cities.add(city13);
cities.add(city14);
cities.add(city15);
}
@GetMapping
public ResponseEntity<List<City>> getCities(){
return new ResponseEntity<>(cities, OK);
}
//filter by id
@GetMapping("/{id}")
public ResponseEntity<City> getCity(@PathVariable String id) {
City result = cities.stream()
.filter(city -> city.getId().equals(id))
.findFirst()
.orElseThrow(()-> new RuntimeException("City is not found!Make sure you enter the correct city code."));
return new ResponseEntity<>(result, OK);
}
//adding other cities with post
@PostMapping
public ResponseEntity<City> createCity(@RequestBody City newCity){
cities.add(newCity);
return new ResponseEntity<>(newCity, HttpStatus.CREATED);
}
}
Kodu çalıştırdığımızda portu web üzerinden açarak veya Postman üzerinden istek atarak aşağıdaki gibi api nızı görebilirsiniz.
Umarım faydalı bir yazı olmuştur.
Happy Codding 👩🏻💻