275.6. 나머지 생산자 바인딩
REST 제작자는 rest-dsl과 같은 JSon 또는 XML을 사용하여 바인딩을 지원합니다.
예를 들어 JSON 바인딩 모드가 설정된 jetty를 사용하려면 나머지 구성에서 이 모드를 구성할 수 있습니다.
restConfiguration().component("jetty").host("localhost").port(8080).bindingMode(RestBindingMode.json);
from("direct:start")
.to("rest:post:user");그런 다음 나머지 프로듀서를 사용하여 REST 서비스를 호출하면 REST 서비스를 호출하기 전에 POJO를 json에 자동으로 바인딩합니다.
UserPojo user = new UserPojo();
user.setId(123);
user.setName("Donald Duck");
template.sendBody("direct:start", user);
위의 예제에서는 메시지 본문으로 POJO 인스턴스 UserPojo 를 보냅니다. 또한 나머지 구성에서 JSon 바인딩을 켜졌기 때문에 REST 서비스를 호출하기 전에 POJO를 POJO에서 JSon으로 마샬링합니다.
그러나 응답 메시지(예: REST 서비스가 응답으로 다시 보내는 내용)에 대한 바인딩을 수행하려면 JSon에서 POJO를 unmarshal으로 유니코드하도록 POJO의 클래스 이름을 지정하도록 outType 옵션을 구성해야 합니다.
예를 들어 REST 서비스에서 com.foo.MyResponsePojo 에 바인딩하는 JSon 페이로드를 반환하는 경우 다음과 같이 이를 구성할 수 있습니다.
restConfiguration().component("jetty").host("localhost").port(8080).bindingMode(RestBindingMode.json);
from("direct:start")
.to("rest:post:user?outType=com.foo.MyResponsePojo");중요
REST 서비스 호출에서 수신한 응답 메시지에 대해 POJO 바인딩이 발생하도록 하려면 outType 옵션을 구성해야 합니다.