78.6. REST 요청 사용 - 단순 바인딩 스타일

Camel 2.11에서 사용 가능

기본 바인딩 스타일은 다소 낮기 때문에 사용자가 수동으로 MessageContentsList 개체를 경로로 처리해야합니다. 따라서 경로 논리를 JAX-RS 작업의 메서드 서명 및 매개 변수 인덱스와 밀접하게 연결합니다. 어려웠고, 오류가 발생하기도 합니다.

반면 SimpleConsumer 바인딩 스타일은 Camel Message 내에서 요청 데이터에 보다 쉽게 액세스 할 수 있도록 다음 매핑을 수행합니다.

  • JAX-RS 매개 변수(@HeaderParam, @QueryParam 등)가 IN 메시지 헤더로 삽입됩니다. 헤더 이름은 주석의 값과 일치합니다.
  • 요청 엔티티(POJO 또는 기타 유형)는 IN 메시지 본문이 됩니다. JAX-RS 메서드 서명에서 단일 엔터티를 식별할 수 없는 경우 원래 MessageContentsList 로 돌아갑니다.
  • 바이너리 @Multipart 본문 부분은 IN 메시지 첨부 파일, DataHandler,InputStream,DataSource 및 CXF Attachment 클래스를 지원합니다.
  • 바이너리가 아닌 @Multipart body 부분은 IN 메시지 헤더로 매핑됩니다. 헤더 이름은 본문 파트 이름과 일치합니다.

또한 다음 규칙이 Response 매핑에 적용됩니다.

  • 메시지 본문 유형이 javax.ws.rs.core.Response (사용자 기반 응답)와 다른 경우 새 응답 을 생성하고 메시지 본문이 엔티티로 설정됩니다(즉 null이 아님). 응답 상태 코드는 Exchange.HTTP_RESPONSE_CODE 헤더에서 가져오거나, 없는 경우 기본값은 200 OK입니다.
  • 메시지 본문 유형이 javax.ws.rs.core.Response 와 동일한 경우, 사용자가 사용자 지정 응답을 작성했으므로 존중되고 최종 응답이 됩니다.
  • 모든 경우에 사용자 정의 또는 기본 HeaderFilterStrategy 에서 허용하는 Camel 헤더가 HTTP 응답에 추가됩니다.

78.6.1. 단순 바인딩 스타일 사용

이 바인딩 스타일은 소비자 끝점의 bindingStyle 매개 변수를 SimpleConsumer 값으로 설정하여 활성화할 수 있습니다.

  from("cxfrs:bean:rsServer?bindingStyle=SimpleConsumer")
    .to("log:TEST?showAll=true");