REST에서 대부분 많이 사용하는 URL의 형태는 /user/{id} 이런 형식으로 진행이 되는데 URL의 중간에 {}가 포함되는 경우가 있습니다. 그냥 parameter에 넣어 넘기면 되겠지만 IoT나 Device 처리를 하는 경우에는 이런 식으로 중간에 값을 추가해서 처리하는 경우가 있습니다. 이처럼 URL 중간에 {변수}가 들어가는걸 sub-resource라고 하는데 사용 방법은 일반적인 방법과 동일 합니다.
아래처럼 Controller를 하나 만들고
package com.copycoding.demo;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;
@RestController @RequestMapping(value="/api") public class TestController {
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET) public String userId(@PathVariable("id") String id) { return "User ID:" + id; }
@RequestMapping(value = "/user/{id}/info/detail/{name}/{age}", method = RequestMethod.GET) public String userInfo(@PathVariable("id") String id, @PathVariable("name") String name, @PathVariable("age") int age) { return "User ID:" + id + " Name:" + name + " Age:" + age; }
} |
url에 들어있는 변수들은 @PathVariable() 어노테이션을 이용하면 값을 받아올 수 있습니다.
예제로 "/user/{id}”를 호출 합니다.
http://localhost:9090/api/user/tester1
잘 나오는 군요.
이제 sub resource 형태의 “/user/{id}/info/detail/{name}/{age}” 주소를 호출해 봅니다.
http://localhost:9090/api/user/tester1/info/gildong/25
이 주소의 호출도 정상적이고 변수들도 잘 받아 오고 있습니다. 추출한 변수를 이용하여 필요한 처리를 하면 되겠습니다.
- copy coding -
'Java' 카테고리의 다른 글
Spring Security Login 화면 만들기 (4) | 2020.02.24 |
---|---|
Spring Security @PreAuthorize @Secured 사용법 (5) | 2020.02.12 |
ubuntu oracle java 수동 설치 (6) | 2019.06.08 |
axboot framework 설치 (2) | 2019.05.29 |
Spring Tools 설치 Spring Boot (STS 4.4.2.1) (4) | 2019.05.28 |