티스토리 뷰
반응형
1.@RequestBody를 했을때 내부 변수에다가 뭐라 적어줘야 하는가?
//음식 등록
@PostMapping("/foods")
public void saveFood(@RequestBody Food food){
foodService.saveFood(food);
}
-> @RequestBody 어노테이션은 HTTP 요청 바디에서 전달되는 데이터의 타입을 지정해주는 역할을 한다.
- Food 객체를 요청 바디에서 전달
- food 파라미터로 받아온다
- foodService의 uploadFood() 메서드를 호출
- food 객체를 전달
2. 등록시 왜 RequestBody를 쓰는가?
-> 음식 등록을 위해 HTTP POST 요청을 보낼 때, 요청 바디에 음식 정보를 담아 보내야 하므로
이때, Spring에서는 @RequestBody 어노테이션을 사용하여 요청 바디에서 전달된 데이터를 자동으로 파싱하여 컨트롤러 메서드의 파라미터에 매핑함!
request body에 JSON 또는 XML 형태의 데이터를 담아 전달 -> @RequestBody 를 이용 -> 컨트롤러 메서드에서 이 데이터를 받아와 음식 정보를 등록
3. 음식 수정엔 뭘 넣어줘야 할까? REST API에 대해 다시정리하자
Restful API는 클라이언트와 서버간의 통신에 HTTP 프로토콜을 사용하고 자원을 URI로 표현하고, HTTP 메서드를 통해 해당 자원을 조작한다.*URI 구성 : scheme://host:port/path?query#fragment
- GET : 리소스 조회(읽기)
- POST : 리소스 생성(쓰기)
- PUT : 리소스 수정(갱신)
- DELETE : 리소스 삭제(삭제)
@PutMapping("/foods/{id}")
public void updateFood(@PathVariable Long id, @RequestBody FoodUpdateRequest request){
foodService.updateFood(id,request);
}
4.Update시에 왜 파라미터로 @PathVariable과 @RequestBody가 필요한가?
리소스의 상태를 수정 : | 수정할 리소스 식별 | + | 요청 바디에 수정할 필드값 전달 |
=PathVariable | =RequestBody | ||
= 수정할 음식의 id | =해당 음식의 이름 |
5.@RestController와 @Controller의 차이
@Controller
- 일반적으로 웹 요청 수신, 뷰를 렌더링
- 웹 페이지를 반환에 사용
@RestController
- RESTful 웹서비스 사용. 주로 데이터 반환에 사용
- @ResponseBody가 적용된것으로 간주되어서 Json 또는 XML과 같은 형식의 데이터를 반환하기 쉽다.
6./search?name형식으로 변경하기
@GetMapping("/search")
public List<FoodResponseDto> searchFoodContainName(@RequestParam("name") String name) {
return foodService.findByNameContaining(name);
}
반응형
'Spring' 카테고리의 다른 글
[Spring] 게시판 TDD를 만들면서 QnA (0) | 2023.03.24 |
---|---|
[Spring] 게시판 Repository 을 만들면서 QnA(JpaRepository,Builder,@Modifying,@Transactional) (0) | 2023.03.18 |
[Spring] Annotation (0) | 2023.03.07 |
[Spring] Controller VS Service VS Repository (0) | 2023.03.07 |
[Spring] Entity VS DTO VS VO (0) | 2023.03.07 |
댓글