반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 틱택토구현
- 자바스크립트recude
- 객체의비교
- 인터넷프로토콜
- 코딩
- 인프런
- 이벤트리스너
- 인프런자바스크립트
- 고차함수
- 자바스크립트
- c#
- 자바스크립트함수
- Blazor
- 인프런강의
- 자바스크립트객체리터럴
- 인프런무료강좌
- slice
- 객체리터럴
- sort
- 자바스크립트틱택토
- 인프런인강
- .NET
- 인프런강좌
- EntityFramework
- HTTP
- 제로초
- 자바스크립트파라미터
- 비주얼스튜디오
- NPM
- 콜백함수
Archives
- Today
- Total
샐님은 개발중
2. 요청 매핑, 매핑 API 본문
728x90
반응형
1. 특정 파라미터, 특정 헤더 조건 등으로 매핑 예시
@RestController
- 반환값으로 뷰를 찾는 것이 아니라 HTTP 메세지 바디에 바로 입력한다.
package hello.springmvc.basic.requestmapping;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
@RestController
public class MappingController {
private Logger log = LoggerFactory.getLogger(getClass());
@RequestMapping(value = "/hello-basic", method = RequestMethod.GET)
public String helloBasic(){
log.info("hellobasic");
return "완료!";
}
/**
* 편리한 축약 애노테이션 (코드보기)
* @GetMapping
* @PostMapping
* @PutMapping
* @DeleteMapping
* @PatchMapping
*/
@GetMapping(value = "/mapping-get-v2")
public String mappingGetV2() {
log.info("mapping-get-v2");
return "ok";
}
/**
* PathVariable 사용
* 변수명이 같으면 생략 가능
* @PathVariable(""userId) String userId -> @PathVariable userId
*
*/
@GetMapping("/mapping/{userId}")
public String mappingPath(@PathVariable("userId") String data){
log.info("userId ={}",data);
return data;
}
/**
* PathVariable 다중 사용
*/
@GetMapping("/mapping/{userId}/orders/{orderId}")
public String mappingPath(@PathVariable String userId, @PathVariable Long orderId){
log.info("mappingPath userId={}, orderId={}", userId, orderId);
return "ok";
}
/**
* 특정 헤더로 추가 매핑
* headers="mode",
* headers="!mode"
* headers="mode=debug"
* headers="mode!=debug" (! = )
*
* Http 헤더에 특정 키와 값이 존재해야 사용가능함.
*/
@GetMapping(value = "/mapping-header", headers = "mode=debug")
public String mappingHeader() {
log.info("mappingHeader");
return "ok";
}
/**
* Content-Type 헤더 기반 추가 매핑 Media Type
* consumes="application/json"
* consumes="!application/json"
* consumes="application/*"
* consumes="*\/*"
* MediaType.APPLICATION_JSON_VALUE 으로 호환가능
*/
@PostMapping(value = "/mapping-consume", consumes = "application/json")
public String mappingConsumes() {
log.info("mappingConsumes");
return "ok";
}
/**
* Accept 헤더 기반 Media Type
* produces = "text/html"
* produces = "!text/html"
* produces = "text/*"
* produces = "*\/*"
*/
@PostMapping(value = "/mapping-produce", produces = "text/html")
public String mappingProduces() {
log.info("mappingProduces");
return "ok";
}
}
2. 요청 매핑 API
package hello.springmvc.basic.requestmapping;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/mapping/users")
public class MappingClassController {
/**
* 회원 관리 API
* 회원 목록 조회: GET /users
* 회원 등록: POST /users
* 회원 조회: GET /users/{userId}
* 회원 수정: PATCH /users/{userId}
* 회원 삭제: DELETE /users/{userId}
* @return
*/
@GetMapping
public String users(){
return "get users";
}
@PostMapping
public String add(){
return "add users";
}
@PatchMapping("/{userId}")
public String edit(@PathVariable String userId){
return "edit users="+userId;
}
@DeleteMapping("/{userId}")
public String delete(@PathVariable String userId){
return "delete user="+userId;
}
}
728x90
반응형
'스프링 MVC 1편 -인프런 김영한 > 섹션6-스프링MVC - 기본 기능' 카테고리의 다른 글
6. HTTP 요청 메시지 - 단순 텍스트 (0) | 2023.07.10 |
---|---|
5. HTTP 요청 파라미터 - @ModelAttribute (0) | 2023.07.10 |
4. HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form (0) | 2023.07.10 |
3. HTTP 요청 - 기본,헤더 조회 (0) | 2023.07.10 |
1. 프로젝트 생성, 로그라이브러 (SLF4J) (0) | 2023.07.10 |