[인프런 BE 0기] API 개발(2)

HeeYeon Kim·2024년 2월 22일
0

STUDY

목록 보기
10/15
post-thumbnail

인프런 워밍업 클럽 스터디 0기
BE 4일차

문제1


Controller

@PostMapping("/api/v1/fruit")
    public ResponseEntity saveFruit(@RequestBody Fruit fruit){

        FruitResponse fruitResponse = new FruitResponse();
        return new ResponseEntity(fruitResponse.save(fruit),HttpStatus.OK);
    }

FruitResponse

import lombok.Getter;
import org.springframework.jdbc.core.JdbcTemplate;

@Getter
public class FruitResponse {
    private JdbcTemplate jdbcTemplate;

    public FruitResponse() {}

    public Fruit save(Fruit fruit){
        String sql = "INSERT INTO fruit (name,warehousingDate,price) VALUES (?,?,?)";
        jdbcTemplate.update(sql,fruit.getName(),fruit.getWarehousingDate(),fruit.getPrice());
        return fruit;
    }
}

Fruit

import lombok.Getter;


import java.time.LocalDate;

@Getter
public class Fruit {
    private String name;
    private LocalDate warehousingDate;
    private long price;

    public Fruit(String name, LocalDate warehousingDate, long price) {
        this.name = name;
        this.warehousingDate = warehousingDate;
        this.price = price;
    }
}



문제2


Controller

@PutMapping("/api/v1/fruit")
public void buyFruit(@RequestBody Long id){
  fruitResponse.isBuy(id);
}

Fruit DB 수정

alter table fruit add column sold boolean default false;

fruitResponse - isBuy Method 추가

public void isBuy(long id){
	String sql = "update fruit set sold = true where id=?";
    jdbcTemplate.update(sql,id);
}



문제 3

Controller

@GetMapping("/api/v1/fruit/stat")
public Response getFruitStatus(@RequestParam String name){
  long salesAmount = fruitResponse.calcSalesAmount(name);
  long notSalesAmount = fruitResponse.notCalcAmount(name);
  
  return response;
}





강의

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지!

0개의 댓글