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