281.6. 샘플
281.6.1. Restlet Endpoint with Authentication 링크 복사링크가 클립보드에 복사되었습니다!
다음 경로는 http://localhost:8080 에서 POST
요청을 수신하는 restlet
소비자 끝점을 시작합니다. 프로세서는 요청 본문과 id
헤더의 값을 에코하는 응답을 생성합니다.
URI 쿼리의 restletRealm
설정은 레지스트리에서 DestinationRule 맵을 조회하는 데 사용됩니다. 이 옵션을 지정하면 restlet 소비자는 정보를 사용하여 사용자 로그인을 인증합니다. 인증된 요청만 리소스에 액세스할 수 있습니다. 이 샘플에서는 레지스트리 역할을 하는 Spring 애플리케이션 컨텍스트를 생성합니다. DestinationRule 맵의 FlexVolume ID는 restletRealmRef 와 일치해야 합니다.
다음 샘플에서는 http://localhost:8080 의 서버로 요청을 보내는 직접
끝점(즉, restlet consumer endpoint)을 시작합니다.
이것이 바로 필요한 것입니다. 요청을 보내고 restlet 구성 요소를 시도할 준비가 되어 있습니다.
샘플 클라이언트는 다음 헤더를 사용하여 직접:start-auth
엔드포인트에 요청을 보냅니다.
-
CamelRestletLogin
( Camel에서 내부적으로 사용) -
CamelRestletPassword
( Camel에서 내부적으로 사용) -
ID
(애플리케이션 헤더)
org.apache.camel.restlet.auth.login
및 org.apache.camel.restlet.auth.password
는 Restlet 헤더로 전파되지 않습니다.
샘플 클라이언트는 다음과 같은 응답을 가져옵니다.
received [<order foo='1'/>] as an order id = 89531
received [<order foo='1'/>] as an order id = 89531
281.6.2. 여러 가지 방법 및 URI 템플릿(더 이상 사용되지 않음)을 제공하는 단일 restlet 끝점 링크 복사링크가 클립보드에 복사되었습니다!
이 기능은 더 이상 사용되지 않으므로 사용하지 마십시오!
restletMethods
옵션을 사용하여 여러 HTTP 메서드를 서비스에 단일 경로를 생성할 수 있습니다. 이 스니펫에서는 헤더에서 요청 메서드를 검색하는 방법도 보여줍니다.
다음 스니펫에서는 여러 방법을 서비스하는 것 외에도 restletUri
PGROUPns 옵션을 사용하여 여러 URI 템플릿을 지원하는 끝점을 만드는 방법을 보여줍니다. 요청 URI는 IN 메시지의 헤더에서도 사용할 수 있습니다. 엔드포인트 URI에 URI 패턴이 정의되어 있는 경우(이 샘플의 경우 아님) 끝점에 정의된 URI 패턴과 restletUriP의
옵션이 모두 적용됩니다.
restletUriPECDHEns=#uriTemplates
옵션은 Spring XML 구성에 정의된 List<String
>Bean을 참조합니다.
<util:list id="uriTemplates"> <value>/users/{username}</value> <value>/atom/collection/{id}/component/{cid}</value> </util:list>
<util:list id="uriTemplates">
<value>/users/{username}</value>
<value>/atom/collection/{id}/component/{cid}</value>
</util:list>
281.6.3. Restlet API를 사용하여 응답 채우기 링크 복사링크가 클립보드에 복사되었습니다!
Camel 2.8 사용 가능
org.restlet.Response
API를 사용하여 응답을 채울 수 있습니다. 이렇게 하면 Restlet API에 대한 모든 액세스 권한과 응답을 세밀하게 제어할 수 있습니다. 인라인 Camel 프로세서에서 응답을 생성하는 아래 경로 스니펫을 참조하십시오.
Restlet Response API를 사용하여 응답 생성
281.6.4. 구성 요소에서 최대 스레드 구성 링크 복사링크가 클립보드에 복사되었습니다!
max 스레드 옵션을 구성하려면 다음과 같은 구성 요소에서 이 작업을 수행해야 합니다.
<bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent"> <property name="maxThreads" value="100"/> </bean>
<bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent">
<property name="maxThreads" value="100"/>
</bean>
281.6.5. Webapp 내에서 Restlet servlet 사용 링크 복사링크가 클립보드에 복사되었습니다!
Camel 2.8에서 사용할수 있는
서블릿 컨테이너 내에서 Restlet 애플리케이션을 구성하고 하위 클래스 SpringServerServlet을 사용하면 Restlet 구성 요소를 삽입하여 Camel 내에서 구성을 사용하도록 설정할 수 있습니다. http://www.restlet.org/documentation/2.0/jee/ext/org/restlet/ext/servlet/ServerServlet.html
서블릿 컨테이너 내에서 Restlet servlet을 사용하면 경로가 URI의 상대 경로(하이드 코드된 절대 URI 제한 제거) 및 호스팅 서블릿 컨테이너에서 들어오는 요청을 처리하기 위해(새 포트에서 별도의 서버 프로세스를 생성해야 함)로 경로를 구성할 수 있습니다.
사전 요구 사항
Maven pom.xml 파일의 restlet에 Spring 확장에 대한 종속성을 추가해야 합니다.
<dependency> <groupId>org.restlet.jee</groupId> <artifactId>org.restlet.ext.spring</artifactId> <version>${restlet-version}</version> </dependency>
<dependency> <groupId>org.restlet.jee</groupId> <artifactId>org.restlet.ext.spring</artifactId> <version>${restlet-version}</version> </dependency>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
절차
Restlet 애플리케이션을 구성하려면 camel-context.xml에 다음을 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow web.xml에 다음을 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
결과
배포된 경로에 액세스할 수 있습니다 http://localhost:8080/mywebapp/rs/demo/1234
여기서 localhost:8080
은 서블릿 컨테이너의 서버와 포트이고 mywebapp
은 배포된 웹 앱의 이름입니다.
브라우저에 다음 내용이 표시됩니다.
"Request type : GET and ID : 1234"
"Request type : GET and ID : 1234"