728x90
반응형
요청매핑
url 로 요청이 왔을때 어떻게 처리하는지 방법을 알아본다.
매핑방법1
여러개의 요청 url 을 받는방법
@RequestMapping(value = {"/hello-basic", "/hello-go"}, method = RequestMethod.GET)
public String helloBasic() {
log.info("helloBasic");
return "ok";
}
GetMapping 을 이용하여 Path 변수값 가져오기
@GetMapping(value = "/mapping/{userId}")
// public String mappingPath(@PathVariable("userId") String data) {
// 변수명과 PathVariable 이름이 같으면 변수만 써줘도 된다.
public String mappingPath(@PathVariable String userId) {
log.info("mappingPath userId ={}", userId);
return "ok";
}
특정 파라미터 값이 있을만 매핑하기
/**
* 파라미터로 추가 매핑
* 해당 파라미터 쿼리가 있어야 동작한다.
* mode=debug 이게 파라미터로 있어야한다.
*/
@GetMapping(value = "/mapping-param", params = "mode=debug")
public String mappingParam() {
log.info("mappingParam");
return "ok";
}
컨트롤러가 생성하는 타입만 받기
/**
* Content-Type 헤더 기반 추가 매핑 Media Type
* 헤더의 content-type이 json 이면 응답한다.
* consumes: 소비하는 입장에서 보면 요청의 content 타입을 처리
* produces: 컨트롤러가 생성하는 타입을 말한다.
*/
@PostMapping(value = "/mapping-consume", consumes = "application/json")
public String mappingConsumes() {
log.info("mappingConsumes");
return "ok";
}
클라이언트가 받는 타입을 정한다.
/**
* Accept 헤더 기반 Media Type
* produces: 클라이언트 쪽이 받아 들이는 타입을 정의해준다.
*/
@PostMapping(value = "/mapping-produce", produces = "text/html")
public String mappingProduces() {
log.info("mappingProduces");
return "ok";
}
매핑방법2
@RestController 사용하여 중복을 생략한다.
package hello.springmvc.basic.requestmapping;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/users")
public class MappingClassController {
//@GetMapping("/users")
@GetMapping
public String user() {
return "get users";
}
//@PostMapping("/users")
@PostMapping
public String addUser() {
return "post user";
}
//@GetMapping("/users/{userId}")
@GetMapping("/{userId}")
public String findUser(@PathVariable String userId) {
return "get userId=" + userId;
}
//@PatchMapping("/users/{userId}")
@PatchMapping("/{userId}")
public String updateUser(@PathVariable String userId) {
return "update userId=" + userId;
}
//@DeleteMapping("/users/{userId}")
@DeleteMapping("/{userId}")
public String deleteUser(@PathVariable String userId) {
return "delete userId=" + userId;
}
}
참고
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/lecture/71216?tab=curriculum
728x90
반응형
'Spring > spring mvc 1 스터디' 카테고리의 다른 글
[Spring] Message Converter (0) | 2021.11.25 |
---|---|
[Spring] HTTP 응답 (0) | 2021.11.21 |
[Spring] HTTP 요청메세지 TEXT, JSON (0) | 2021.11.16 |
[Spring] HTTP 요청파라미터 (0) | 2021.11.13 |
[Spring] Spring Controller 다루기 (0) | 2021.11.06 |
댓글