티스토리 뷰
JAVA/Spring & Spring Boot
[Spring & Spring Boot / Annotation] REST API 구현 시 자주 사용하는 어노테이션 모음 및 간단 설명
신우섭 2020. 7. 16. 16:42@RestController
RestController의 주용도는 Json/Xml 형태로 객체 데이터를 반환하는 것이다.
주로 RestAPI Control Class에 선언한다.
RestController가 선언된 클래스의 내부 함수들은 return 값이 Json/Xml 형식으로 자동 변환되어 반환된다.
샘플@RestController public class HotelController extends AbstractRestHandler {
@RequestMapping
REST API 호출 시 작성된 URL 의 method 값에 따라 맵핑 시켜준다.
RestController이 선언된 클래스의 내부 함수 상단에 선언해준다.
샘플@RequestMapping(value = "", method = RequestMethod.POST, consumes = {"application/json", "application/xml"}, produces = {"application/json", "application/xml"})
consumes
- consumes는 Content-Type이 consumes에 명시한 media-type과 같아야한다.
샘플
curl -XPOST "localhost:8080/test" -H "Content-Type:application/json"
content-type
- content-type은 client가 보내는 content의 타입이다.
produces
- produces는 Accet Header가 produces에 명시한 Media Type과 같을때에 해당 Type으로 response를 보내준다
accept
- accept는 client가 backend 서버에게 어떤 형식(Media Type)으로 달라고 하는 요청의 방식 (ex. JSON 방식으로 주세요 => Accept:application/json)
샘플
curl -XGET "localhost:8080/test" -H "Accept:application/json"
- consumes는 Content-Type이 consumes에 명시한 media-type과 같아야한다.
@ResponseStatus
ResponseStatus는 부여된 메소드(함수)의 응답 상태 코드를 지정할 수 있다. (ex. 200 OK, 201 Created, 202 Accepted 등)
아무것도 지정하지 않으면 200 OK가 반환되다.
샘플@RestController @RequestMapping("/hello") public class HelloController { @RequestMapping(method=RequestMethod.GET) @ResponseStatus(HttpStatus.BAD_REQUEST) public void getMethod() { } }
@RequestBody
HTTP로 받은 Body 데이터를 자바 객체로 받기 위하여 사용
샘플@RestController public class LoginWebController { // HTTP 요청의 내용을 Member 객체에 매핑하기위해 @RequestBody 애너테이션을 설정한다. @RequestMapping(value="/member/login", method = RequestMethod.POST) public MemberResultDto login(@RequestBody Member member) { MemberResultDto memberResultDto = memberService.login(member); return memberResultDto; } }
@ApiParam
ApiParam은 멤버 변수에 대한 설명 및 다양한 설정을 지원합니다.
value
- 저장되야할 값에 대한 설명을 명시합니다.
required
- 필수 여부를 지정합니다.
샘플
@ApiParam(value = "member age", required = true) private int age;
@RequestParam
HTTP를 통하여 받아온 데이터를 단일 파라미터 변환 해준다.
샘플@RequestParam(value = "page", required = true, defaultValue = DEFAULT_PAGE_NUM) Integer page;
value
- HTTP를 통하여 넘어온 쿼리 스트링의 Key값
required
- 필수로 사용 여부 true=필수사용, false=사용하든 안하든 상관없음
defaultValue
- HTTP에서 해당 Key로 넘어온 값이 없다면 들어갈 기본값
'JAVA > Spring & Spring Boot' 카테고리의 다른 글
Gradle dependencies(의존성) 에서 version을 명시 하지 않았을 경우에 어떻게 되나 (0) | 2021.09.08 |
---|---|
[Spring & SpringBoot] .jar 내부의 manifest 본문 읽어오기 (0) | 2021.02.23 |
[Spring & SpringBoot] JAR(파일 포맷) 이란? (0) | 2020.08.27 |
[Spring & Spring Boot] VSCode 에서 lombok 어노테이션 적용 안되는 현상 (0) | 2020.07.22 |
[Spring & Spring Boot] 자바 객체를 JSON 문자열로 변경 (0) | 2020.07.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- unrealengine
- 람다함수
- coordinate system
- c++11
- Lambda
- C
- Trouble shooting
- 람다
- bug
- c++
- rotator
- UE4
- LambdaFunction
- double free
- UE5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함