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


rest sub resource


잘 나오는 군요.

 

이제 sub resource 형태의 /user/{id}/info/detail/{name}/{age}주소를 호출해 봅니다.

http://localhost:9090/api/user/tester1/info/gildong/25


rest sub resource


이 주소의 호출도 정상적이고 변수들도 잘 받아 오고 있습니다추출한 변수를 이용하여 필요한 처리를 하면 되겠습니다.


- copy coding -



+ Recent posts