일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 에러
- 디자인 패턴
- exceptiontransfer
- spring boot error
- 자바스크립트
- Oracle
- Intellij
- javascript
- pom.xml
- 스프링
- 인텔리제이
- egov
- 메이븐
- spring 에러
- Spring REST API
- REST API
- 자바스크립트 클래스
- spring boot rest api
- spring 설정 파일
- spring boot post api
- Spring boot
- javascript 클래스
- Spring
- 전자정부 샘플
- javascript class
- 오라클
- spring boot CRUD
- 전자정부프레임워크
- 자바스크립트 class
- 스프링부트 post api
- Today
- Total
빵구의 개발 메꾸기
스프링 부트(Spring Boot)를 활용한 GET REST API 구현 본문
스프링 부트(Spring Boot)를 활용하여 HTTP Method중 하나인 GET REST API를 구현하는 방법에 대해 알아보자.
GET REST API를 구현하는 방법은 여러가지가 있는데 한가지씩 과정을 보여주고자 한다.
@RestController는 해당 class가 RestAPI를 처리하는 Controller로 등록하겠다는 의미에서 사용된다.
<첫번째 구현 방법>
① 첫번째 구현 방법을 살펴보자.
@GetMapping에 path라는 속성으로 요청이 들어올 세부 URL에 대한 path를 지정해준다.
② GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/get-method1을 셋팅한다.
③ Send 버튼을 클릭하여 GET REST API를 호출한다.
④ return 받은 값을 보면 정상적으로 get1이 Body에 담긴 것을 확인할 수 있다.
<두번째 구현 방법>
① 두번째 구현 방법을 살펴보자.
@RequestMapping에 첫번째 방법과 동일하게 path라는 속성으로 요청이 들어올 세부 URL에 대한 path를
지정해주고 method 속성으로 GET 방식이기 때문에 RequestMethod.GET을 설정해준다.
② GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/get-method2을 셋팅한다.
③ Send 버튼을 클릭하여 GET REST API를 호출한다.
④ return 받은 값을 보면 정상적으로 get2이 Body에 담긴 것을 확인할 수 있다.
<세번째 구현 방법>
① 세번째 구현 방법을 살펴보자.
@GetMapping에 path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.
이 때 요청을 보내는쪽에서 /path-variable 뒤에 보낸 데이터를 대해 받기 위해서는 {}안에 변수명을 지정해주고
이 변수명은 ②의 @PathVariable의 name 속성에 값과 일치해야 한다.
② {}안에 변수명에 대해 @PathVariable의 name 속성에 값과 일치해야 하며 변수명으로 들어온 값은
String userName에 담기게 된다.
③ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/path-variable/bkjo를 셋팅한다.
④ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑤ return 받은 값을 보면 정상적으로 bkjo가 Body에 담긴 것을 확인할 수 있다.
<잘못된 예시>
① 앞서 설명한 세번째 방법과 동일하게 작성한다.
② 메서드 파라미터 정보에 @PathVariable을 넣지 않고 String userName만 넣었을 경우 어떻게 되는지 살펴보자.
③ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/path-variable/bkjo를 셋팅한다.
④ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑤ @GetMapping에 작성한 {userName} 부분의 데이터를 받기 위해서는 메서드 파라미터 정보에 @PathVariable을
넣고 name 속성값에 변수명을 일치시켜줘야 정상적으로 데이터를 받을 수 있는 것을 볼 수 있다.
<잘못된 예시>
① 앞서 설명한 세번째 방법과 동일하게 작성한다.
② 메서드 파라미터 정보에 @PathVariable을 넣었으나 name 속성값에 변수명과 일치하지 않게 String userName만
넣었을 경우 어떻게 되는지 살펴보자.
③ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/path-variable/bkjo를 셋팅한다.
④ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑤ 서버 에러가 나는 것을 볼 수 있다.
<다중 파라미터를 개별적으로 받을 경우>
① 앞서 설명한 세번째 방법과 동일하게 작성하되 뒤에 {변수명}은 작성하지 않는다.
위에 내용에서는 요청을 보내는쪽에서 /query-parameter 뒤에 보낸 데이터를 대해 받기 위해서는 {변수명}을
작성해서 받았으나 이번엔 여러 개의 데이터를 받을 것이기에 메서드의 파라미터 정보에 @RequestParam을
활용하여 데이터를 받아보자.
② 메서드 파라미터 정보에 각각 받을 데이터 별로 @RequestParam를 넣고 타입 뒤에 있는 변수명에는 API 요청 시
쿼리 파라미터에 작성한 key=value에서의 key와 일치해야 한다.
③ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/query-parameter?
name=bkjo&age=29&address=daejeon을 셋팅한다.
④ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑤ return 받은 값을 보면 정상적으로 name, age, address 값이 Body에 담긴 것을 확인할 수 있다.
<다중 파라미터를 Map으로 받을 경우>
① 이번에도 여러 개의 데이터를 받을 것이기에 path 정보만 넣고 받을 데이터에 대해서는 뒤에 /query-parameter-map
뒤에 {변수명}은 작성하지 않고 메서드의 파라미터 정보에 @RequestParam을 활용하여 데이터를 받을 것이다.
② 아까는 메서드 파라미터 정보에 각각 받을 데이터 별로 @RequestParam를 넣었지만 이번엔 받을 데이터에 대해
@RequestParam을 하나만 넣는 대신 타입을 Map으로 하게 되면 데이터 별로 @RequestParam을 넣는 것과
동일하게 받을 수 있다.
③ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/query-parameter-map?
name=bkjo&age=29&address=daejeon을 셋팅한다.
④ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑤ return 받은 값을 보면 정상적으로 name, age, address 값이 Body에 담긴 것을 확인할 수 있다.
<잘못된 예시>
① 이번에도 여러 개의 데이터를 받을 것이기에 path 정보만 넣고 받을 데이터에 대해서는 뒤에 /query-parameter-map
뒤에 {변수명}은 작성하지 않고 메서드의 파라미터 정보에 @RequestParam을 활용하여 데이터를 받을 것이다.
② 메서드 파라미터 정보에 @RequestParam을 넣지 않고 Map만 넣었을 경우 어떻게 되는지 살펴보자.
③ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/query-parameter-map?
name=bkjo&age=29&address=daejeon을 셋팅한다.
④ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑤ 메서드 파라미터 정보에 @RequestParam이 없기 때문에 매핑이 안돼서 정상적으로 데이터가 return 되지 않은 것을
볼 수 있다.
<다중 파라미터를 VO로 받을 경우>
① API 호출 시 URL에 보낼 데이터의 key 값들에 대해 일치하는 모델 class의 property들을 정의하고 getter setter
메서드를 만든다.
② 마찬가지로 여러개의 데이터를 받을 것이기 때문에 ${변수명}은 생략한다.
③ 메서드의 파라미터 정보에 받을 데이터에 대한 key 값들과 매핑되는 property가 정의 된 모델 class를 넣는다.
모델 class를 넣을 때는 @RequestParam을 넣지 않아도 된다.
④ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/query-parameter-model?
name=bkjo&age=29&address=daejeon을 셋팅한다.
⑤ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑥ return 받은 값을 보면 정상적으로 name, address, age 값이 Body에 담긴 것을 확인할 수 있다.
'BACK-END > SPRING BOOT' 카테고리의 다른 글
스프링 부트(Spring Boot)를 활용한 PUT REST API 구현 (0) | 2022.05.11 |
---|---|
스프링 부트(Spring Boot)를 활용한 POST REST API 구현 (0) | 2022.05.08 |
REST API 테스트 (0) | 2022.04.17 |
스프링 부트(Spring Boot) 특징 및 어노테이션(Annotation) 활용 (0) | 2022.04.15 |
인텔리제이(Intellij) 스프링 부트(Spring Boot) 환경 셋팅 (0) | 2022.04.15 |