276.6. rest producer 바인딩
REST 생산자는 JSon 또는 XML을 사용한 나머지-dsl과 같은 바인딩을 지원합니다.
예를 들어 json 바인딩 모드가 설정된 상태에서 jetty를 사용하려면 나머지 구성에서 이를 구성할 수 있습니다.
restConfiguration().component("jetty").host("localhost").port(8080).bindingMode(RestBindingMode.json); from("direct:start") .to("rest:post:user");
그런 다음 rest 생산자를 사용하여 REST 서비스를 호출할 때 REST 서비스를 호출하기 전에 모든 Cryostat를 json에 자동으로 바인딩합니다.
UserPojo user = new UserPojo(); user.setId(123); user.setName("Donald Duck"); template.sendBody("direct:start", user);
위의 예제에서는 UserPojo
인스턴스를 메시지 본문으로 보냅니다. 나머지 구성에서 JSon 바인딩을 사용했기 때문에 REST 서비스를 호출하기 전에 Cryostat에서 JSon으로 마샬링됩니다.
그러나 응답 메시지에 대한 바인딩도 수행하려는 경우(예: REST 서비스가 응답을 다시 보내는 내용) JSon에서 Cryostat를 unmarshal하도록 지정하려면 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 서비스 호출에서 수신한 응답 메시지에 대해 Cryostat 바인딩이 수행되려면 outType
옵션을 구성해야 합니다.