우리는 GET API와 POST API를 만드는 방법을 배웠습니다.
추가적인 API들을 만들어 보며 API 개발에 익숙해져 봅시다!
우리는 작은 과일 가게를 운영하고 있습니다. 과일 가게에 입고된 “과일 정보”를 저장하는 API를 만들어 봅시다. 스펙은 다음과 같습니다.
HTTP method : POST
HTTP path : /api/v1/fruit
HTTP 요청 Body
{
"name": String,
"warehosingDate": LocalDate,
"price": long
}
HTTP 요청 Body 예시
{
"name": "사과",
"warehosingDate": "2024-02-01",
"price": 5000
}
응답 : 성공 시 200
controller > fruit > FruitController.java
package com.group.libraryapp.controller.fruit;
import com.group.libraryapp.dto.fruit.request.FruitRequest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class FruitController {
private final JdbcTemplate jdbcTemplate;
public FruitController(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@PostMapping("/api/v1/fruit")
public void saveFruitInfo(@RequestBody FruitRequest request) {
String sql = "INSERT INTO fruit (name, warehosingDate, price) VALUES (?, ?, ?)";
jdbcTemplate.update(sql, request.getName(), request.getWarehosingDate(), request.getPrice());
}
}
dto > fruit > request > FruitRequest.java
package com.group.libraryapp.dto.fruit.request;
import java.time.LocalDate;
public class FruitRequest {
private String name;
private LocalDate warehosingDate;
private Long price;
public String getName() {
return name;
}
public LocalDate getWarehosingDate() {
return warehosingDate;
}
public Long getPrice() {
return price;
}
public FruitRequest(String name, LocalDate warehosingDate, Long price) {
this.name = name;
this.warehosingDate = warehosingDate;
this.price = price;
}
}

create table fruit(
id bigint auto_increment,
name varchar(25),
warehosingDate DATETIME,
price int(25),
isSold boolean not null default 0,
primary key (id)
);
