요청방식 4가지
- Get (@GetMapping)
- Post (@PostMapping)
- Put (@PutMapping)
- Delete (@DeleteMapping)
@RestController
- Data를 응답하는 컨트롤러
- 각 메서드가 @ResponseBody 어노테이션과 함께 작동
- HTTP응답의 본문에 직접 데이터를 쓴다
@Controller
- 뷰를 반환하거나, 다른 메서드로 리다이렉션을 수행
- 리턴시에 ViewResolver 발동
* WebApplicationContext가 재 생성될 때 Dispacher Sevlet이 생성되고 class가 new 된다.
* Component Scan - 스프링이 지정해둔 어노테이션이 있는데 8가지 정도 (그 친구들만 new됨)
@RestController
public class HttpBodyController {
/**
* host = localhost:8080
* endpoint = /data/body/v1
* method = post
* QueryString = title (String)
* Body - x-www-form-urlencoded = title (String)
*/
@PostMapping("/data/body/v1")
public String bodyV1(@RequestParam("title") String title){
return "받은값 : "+ title;
}
body의 기본 설정은 x-www-gorm-urlencoded 다.
- QueryString과 PathVariable
- QueryString은 예를들어 ?name = ssar, password = 1234 형태
* QueryString, PathVariable (where절에 줄 데이터 = 구체적인 요청을 하는 데이터)
* SELECT * FROM user WHERE email = 'ssar@nate.com';
*
* 줄 데이터가 primaryKey(기본키) 면 PathVariable로
* 아니면 QueryString으로
@GetMapping("/data/path/v1/{id}")
public String pathV1(@PathVariable int id){
return "받은 값 : "+id;
}
- PathVariable은 위처럼 primaryKey 같이 구분할 수 있는 값들을 이용해 필요한 것을 가져온다.
- RequestBody
- 뒤의 변수가 객체일시 버퍼가 발동하고 Gson(Jackson)이 발동
- Json으로 값을 받는다.