우리는 GET API와 POST API를 만드는 방법을 배웠습니다.

추가적인 API들을 만들어 보며 API 개발에 익숙해져 봅시다!

문제 1

우리는 작은 과일 가게를 운영하고 있습니다. 과일 가게에 입고된 “과일 정보”를 저장하는 API를 만들어 봅시다. 스펙은 다음과 같습니다.

구현

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;
    }
}

POSTMAN 결과

Untitled

DB 생성 및 결과

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

Untitled

한 걸음 더!