티스토리 뷰

반응형

1.@RequestBody를 했을때 내부 변수에다가 뭐라 적어줘야 하는가?

//음식 등록
@PostMapping("/foods")
    public void saveFood(@RequestBody Food food){
        foodService.saveFood(food);
    }

-> @RequestBody 어노테이션은 HTTP 요청 바디에서 전달되는 데이터의 타입을 지정해주는 역할을 한다.

  1. Food 객체를 요청 바디에서 전달 
  2. food 파라미터로 받아온다
  3. foodService의 uploadFood() 메서드를 호출 
  4. 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);
}

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함