선 요약:
그래도 저번 주에 유어 클래스에서 스프링을 이해를 떠나서 접해 보았고, 스터디를 통해 어느 정도
실습을 해보았기 때문에 이해의 유무를 떠나 처음보다는 꽤 익숙해진 느낌
오늘부터 섹션 3가 시작되었다.
스프링 MVC에 대해서 기초적인 개념만 조금씩 찍먹 하였고 Controller의 핸들러 메서드를
직접 페어와 실습하는 것이 오늘의 주 과제였다.
MVC는 따로 추가적으로 포스팅으로 정리할 예정이다. 생각보다 깊고 분량이 많다.
페어프로그래밍 과제가 계속 잘 풀리지 않아 다른 분들 코드를 참고하면서 해보았으나 거의 끝날 때까지
아무진전이 없었다. 다행히 끝나기 15분 전에 극적으로 해결을 하게 되었다.
과제 자체는 Postman을 통해서 API의 요청이 어떻게 들어가는지 결과를 확인하는 과정이었다.
하지만 DB에 해당 데이터가 들어가 있음을 가정한 상황에서 진행한 시나리오였는데,
실제 저장이 안 되는데 어떻게 확인하라는 건지 이해하는데 있어서 시간이 많이 소모됐다.
계속 삽질을 하다가 해결을 하게 되었는데,
/v1/members/1 에다가 요청을 보내야 했는데 계속 v1/members에 요청을 보내서 405에러가 튀어나왔다.
경로가 틀렸으니 POST, PUT메서드를 사용할수 없다는 에러 메세지도 나오고 있었다.
아직 100% 이해는 안 되지만 내가 느낀 바로는 @PostMapping은 HTTP메서드의 POST를,
@PutMapping은 PUT을, @DeleteMapping은 DELETE의 기능을 구현하겠다 하는 것 같다.
위 Postman화면에서 PATCH HTTP메서드로 요청을 보냈고, @PatchMapper에서 구현된 changeCoffeeInfo
핸들러 메서드를 호출하여 map에 해당 데이터를 넣은 다음에 다시 Response를 JSON타입으로 한다.
@PatchMapping("/{coffee-id}")
public ResponseEntity changeCoffeeInfo(@PathVariable("coffee-id") String coffeeId,
@RequestParam("korName") String korName,
@RequestParam("engName") String engName)
{
Map<String, Object> map = new LinkedHashMap<>();
map.put("coffee-Id", coffeeId);
map.put("korName", "바닐라 빈 라떼");
map.put("engName", "Vanilla Latte");
map.put("price", 5000);
return new ResponseEntity<>(map, HttpStatus.OK);
}
여기서 나는 데이터를 순서대로 넣고 싶어서 LinkedHashMap을 사용했다.
오늘 새로 검색하다가 알게 된 내용이라 짧지만 나중에 기억할 수 있게 토막글을 작성해놨다.
핸들러 메서드의 응답 데이터 순서 변경
핸들러 메서드를 ResponseEntity와 HashMap을 이용하여 응답 데이터의 반환값을 확인해보는 연습을 해보았다. 처음 코드는 위와 같이 작성되어 있었고 postman을 통해 리턴된 JSON내용을 확인해 봤는데
danc9921.tistory.com
'codestates_BE_bootcamp39 > 주단위 일기' 카테고리의 다른 글
27 June - 서비스 계층 (0) | 2022.06.27 |
---|---|
24 June - Week9(오후과정 불참) (6) | 2022.06.24 |
21 June - AOP (0) | 2022.06.21 |
20 June - AOP (0) | 2022.06.20 |
17 June - Week8 (2) | 2022.06.17 |