달력

3

« 2024/3 »

  • 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
.. .. ..

[펌] : http://01041741840.tistory.com/40

 

Server 측입니다.

@Path("/") // 이 class가 받는 경로. Web.xml에서 url-pattern으로 /*를 주었을 때 @Path를 Controller마다 다르게 주면 각각 다르게 인식한다.

public class RestServerController {

@POST

@Produces("text/xml")

@Consumes("application/xml")

@Path("users")

public RestServerVO getUsers(RestClientVO rcVO) {

String name = rcVO.getUserName();

RestServerVO rsVO = new RestServerVO();

rsVO.setUserName(name);

rsVO.setAddress("조선");

return rsVO;

}

}

@Path는 Spring에서 @RequestMapping과 같습니다. 어떤 path로 요청하면 받겠다는 설정입니다.

@POST는 다음 메소드가 요청받을 Http Method입니다. POST로 설정하면 POST요청 이외에는 이용할 수 없게 됩니다.

@Produces, @Consumes는 요청, 응답 data type입니다. 설정 값과 어긋나면 type이 맞지 않는다고 Error가 발생합니다.

parameter로 RestClientVO라는것을 받았습니다. 이것은 요청시 RestClientVO로 넘겨준것을 받은것입니다.

이것이 Client에서 요청시에는 자동으로 XML로 바뀌었다가 Server에 와서는 자연스럽게 VO로 바뀐 것입니다.

실제로 이부분을 String 으로 바꾸면 String 형식의 xml로 나타납니다.

그 이후에는 일반적인 작업을 처리하고 결과를 return 하는 부분입니다. 역시나 간단하지 않습니까?

다만, 환경설정시 아시겠지만 Server측은 UrlMapping에 "*.do"가 아니고 "/"로 정의합니다.

그리고 REST를 이용시에는 요청값과 응답값이 무엇이 있는지 서로간에 확인을 해야지만 사용이 가능합니다.

굳이 똑같은 VO가 아니더라도 xml 혹은 json에서 값들을 분리하여 사용이 가능하므로

요청 값들이 String에 무엇인지 int의 무엇인지 정도를 꼭 확인해야 합니다.


굉장히 허접하게 정리해서 이걸 계속 웹에 정리해야 하는지 의문이긴 합니다만, 그래도 저같은 초보들이 조금이나마

도움이 되었으면 좋겠습니다. 다음번에는 Spring 3.0에서 REST구현법을 정리하겠습니다.

.
:
Posted by .07274.