으로 Restlet은 아래에 설명 된대로 직접 REST 주석 방법의 수준에서 서버 자원 내에서 POJO들과 함께 작업 할 수 있습니다 주석의 내용
이러한 코드를 처리하기 위해 Restlet은 작업을 수행하는 일반 변환 기능을 제공합니다. Restlet 확장은이 기능에 대해 다른 구현을 제공합니다. RESTful 애플리케이션에 XML과 JSON을 둘 다 원한다면 Jackson의 확장 기능을 사용해야한다고 생각한다. Jackson (http://wiki.fasterxml.com/JacksonHome)은 POJO를 XML, JSON 및 YAML과 같은 다양한 형식으로 변환 할 수있는 도구입니다.
이 기능을 사용하려면 클래스 경로에 Jackson 확장의 JAR 파일 (org.restlet.ext.jackson)을 넣고 위에서 설명한 프로그래밍 방식을 사용하면됩니다. 여기 그것이 작동하는 방법에 대한 자세한 내용은 다음과 같습니다
당신은 (요청의 헤더 Content-Type
설정) 모두 JSON과 XML 컨텐츠를 보낼 수있을 것으로 Restlet 자동으로 주석에서 예상되는 콩이 컨텐츠를 변환합니다 방법.
POST /myresource
Content-type: application/json
{ "id":"myid", ... }
- 이/전환 응답이 예상되는 내용을 선택하려면 헤더
Accept
에 따라 (REST의 콘텐츠 협상) conneg을 활용할 수 있습니다. application/json
을 지정하면 JSON 콘텐츠가 수신되고 XML은 applicaiton/xml
이됩니다. GET /myresource
Accept: application/json
{ "id":"myid", ... }
GET /myresource
Accept: application/xml
<elt><id>myid> ... </elt>
당신은으로 Restlet도 수신 할 내용을 선택하는 쿼리 매개 변수 media
(표준되지 않음)를 지원하는 것을 알 수 있습니다. json
을 지정하면 JSON 콘텐츠가 다시 수신되고 xml
은 XML 콘텐츠가 수신됩니다.
GET /myresource?media=json
{ "id":"myid", ... }
GET /myresource?media=xml
<elt><id>myid> ... </elt>
당신은이 메커니즘은 또한으로 Restlet와 서버 측에서 지원되는 것을 알 수 있습니다, 마무리합니다. 즉, 콩으로 직접 작업 할 수 있습니다. 아래에 설명 된대로이 기능은,으로 Restlet 주석 인터페이스를 사용할 수 있습니다
이
public interface MyResource {
@Get
List<MyPojo> getList();
@Post
MyPojo addPojo(Pojo pojo);
}
당신은이 인터페이스를 사용하여 아래와 같이 :
ClientResource cr = new ClientResource("http://(...)/myresource");
MyResource myResource = cr.wrap(MyResource.class);
// List
List<Pojo> list = myResource.getList();
// Add
Pojo pojo = new Pojo();
pojo.setId("myid"); // for example
(...)
Pojo returnedPojo = myResource.add(pojo);
돈 '이 클라이언트 클래스 경로 응용 프로그램 확장 잭슨에 넣어하는 것을 잊지 .
희망 하시겠습니까? 티에리