728x90
API 예시
회원 관리를 HTTP API로 만든다 생각하고 매핑을 어떻게 하는지 알아보자.
회원 관리 API
회원 목록 조회: GET → /users
회원 등록: POST → /users
회원 조회: GET → /users/{userId}
회원 수정: PATCH → /users/{userId}
회원 삭제: DELETE → /users/{userId}
@RestController
@RequestMapping("/mapping/users")
public class MappingClassController {
@GetMapping
public String user() {
return "get users";
}
@PostMapping
public String addUser() {
return "post user";
}
@GetMapping("/{userId}")
public String findUser(@PathVariable String userId) {
return "get userId=" + userId;
}
@PatchMapping("/{userId}")
public String updateUser(@PathVariable String userId) {
return "update userId=" + userId;
}
@DeleteMapping("/{userId}")
public String deleteUser(@PathVariable String userId) {
return "delete userId=" + userId;
}
}
HTTP 요청 데이터 조회
헤더 정보 조회
@Slf4j
@RestController
public class RequestHeaderController {
@RequestMapping("/headers")
public String headers(HttpServletRequest request,
HttpServletResponse response,
HttpMethod httpMethod,
Locale locale,
@RequestHeader MultiValueMap<String, String> headerMap,
@RequestHeader("host") String host,
@CookieValue(value = "myCookie", required = false) String cookie
) {
log.info("request={}", request);
log.info("response={}", response);
log.info("httpMethod={}", httpMethod);
log.info("locale={}", locale);
log.info("headerMap={}", headerMap);
log.info("header host={}", host);
log.info("myCookie={}", cookie);
return "ok";
}
}
@RequestHeader MultiValueMap<String, String> headerMap
모든 HTTP 헤더를 MultiValueMap 형식으로 조회한다
MultiValueMap란?
더보기
MAP과 유사한데, 하나의 키에 여러 값을 받을 수 있다.
HTTP header, HTTP 쿼리 파라미터와 같이 하나의 키에 여러 값을 받을 때 사용한다.
→ keyA=value1&keyA=value2
@RequestHeader("host") String host
특정 HTTP 헤더를 조회한다.
@CookieValue(value = "myCookie", required = false) String cookie
특정 쿠키를 조회한다.
HTTP 요청 파라미터
클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 3가지 방법을 사용한다.
1. GET - 쿼리 파라미터
- 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달
2. POST - HTML From
- content-type: application/x-www-form-urlencoded
- 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20
3. HTTP message body
- HTTP API에서 주로 사용, JSON, XML, TEXT
- 데이터 형식은 주로 JSON 사용
- POST, PUT, PATCH
HTTP 요청 파라미터 - 쿼리 파라미터, HTML From
→ https://mystudylog.tistory.com/39
HTTP 요청 메시지 - text, JSON
728x90
'Spring > Spring MVC' 카테고리의 다른 글
HTTP 응답 - HTTP API, 메시지 바디에 직접 입력 (1) | 2023.10.05 |
---|---|
HTTP 응답 - 정적 리소스, 뷰 템플릿 (0) | 2023.10.05 |
HTTP 요청 메시지 - 텍스트, JSON (1) | 2023.10.05 |
HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form (0) | 2023.10.05 |
[스프링 MVC] 요청 매핑 (0) | 2023.10.05 |