282.6. Samples


282.6.1. 인증을 사용한 Restlet Endpoint

다음 경로는 http://localhost:8080 에서 POST 요청을 수신 대기하는 restlet 소비자 끝점을 시작합니다. 프로세서는 요청 본문과 id 헤더의 값을 에코하는 응답을 생성합니다.

URI 쿼리의 restletRealm 설정은 레지스트리에서 map을 찾는 데 사용됩니다. 이 옵션을 지정하면 restlet 소비자는 정보를 사용하여 사용자 로그인을 인증합니다. 인증된 요청만 리소스에 액세스할 수 있습니다. 이 샘플에서는 레지스트리 역할을 하는 Spring 애플리케이션 컨텍스트를 생성합니다. Cryostat 맵의 Cryostat ID는 restletRealmRef 와 일치해야 합니다.

다음 샘플은 http://localhost:8080 의 서버에 요청을 보내는 직접 끝점(즉, restlet 소비자 끝점)을 시작합니다.

이것이 우리가 필요한 전부입니다. 요청을 보내고 restlet 구성 요소를 시도할 준비가 되었습니다.

샘플 클라이언트는 다음 헤더를 사용하여 direct:start-auth 엔드포인트에 요청을 보냅니다.

  • CamelRestletLogin ( Camel에서 내부적으로 사용)
  • CamelRestletPassword ( Camel에서 내부적으로 사용)
  • ID (애플리케이션 헤더)
참고

org.apache.camel.restlet.auth.loginorg.apache.camel.restlet.auth.password 는 Restlet 헤더로 전파되지 않습니다.

샘플 클라이언트는 다음과 같은 응답을 가져옵니다.

received [<order foo='1'/>] as an order id = 89531

282.6.2. 여러 방법 및 URI 템플릿을 서비스하는 단일 restlet 끝점 (더 이상 사용되지 않음)

이 기능은 더 이상 사용되지 않으므로 사용하지 마십시오!

restletMethods 옵션을 사용하여 여러 HTTP 메서드를 서비스하는 단일 경로를 만들 수 있습니다. 이 스니펫에서는 헤더에서 요청 메서드를 검색하는 방법도 보여줍니다.

다음 스니펫에서는 여러 가지 방법 서비스 외에도 restletUriPatterns 옵션을 사용하여 여러 URI 템플릿을 지원하는 끝점을 생성하는 방법을 보여줍니다. 요청 URI는 IN 메시지의 헤더에도 사용할 수 있습니다. URI 패턴이 끝점 URI에 정의된 경우(이 샘플에서 그렇지 않은) 끝점에 정의된 URI 패턴과 restletUriPatterns 옵션이 모두 적용됩니다.

restletUriPatterns=#uriTemplates 옵션은 Spring XML 구성에 정의된 List<String >VLAN을 참조합니다.

<util:list id="uriTemplates">
    <value>/users/{username}</value>
    <value>/atom/collection/{id}/component/{cid}</value>
</util:list>

282.6.3. Restlet API를 사용하여 응답 채우기

Camel 2.8 사용 가능

org.restlet.Response API를 사용하여 응답을 채우는 것이 좋습니다. 이렇게 하면 Restlet API에 대한 전체 액세스 권한과 응답을 세부적으로 제어할 수 있습니다. 인라인 Camel 프로세서에서 응답을 생성하는 경로 스니펫을 참조하십시오.

Restlet Response API를 사용하여 응답 생성

282.6.4. 구성 요소에서 max threads 구성

max 스레드 옵션을 구성하려면 다음과 같은 구성 요소에서 이 작업을 수행해야 합니다.

<bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent">
  <property name="maxThreads" value="100"/>
</bean>

282.6.5. 웹앱 내에서 Restlet 서블릿 사용

Camel 2.8로 사용 가능
서블릿 컨테이너 내에서 Restlet 애플리케이션을 구성하고 하위 클래스 SpringServerServlet을 사용하면 Restlet 구성 요소를 삽입하여 Camel 내에서 구성을 활성화할 수 있습니다. http://www.restlet.org/documentation/2.0/jee/ext/org/restlet/ext/servlet/ServerServlet.html

서블릿 컨테이너 내에서 Restlet 서블릿을 사용하면 URI의 상대 경로로 경로를 구성하고 호스팅 서블릿 컨테이너가 들어오는 요청을 처리할 수 있도록 합니다(새 포트에서 별도의 서버 프로세스를 생성해야 함).

사전 요구 사항

  • Maven pom.xml 파일의 restlet에 Spring 확장에 대한 종속성을 추가해야 합니다.

    <dependency>
      <groupId>org.restlet.jee</groupId>
      <artifactId>org.restlet.ext.spring</artifactId>
      <version>${restlet-version}</version>
    </dependency>

프로세스

  1. Restlet 애플리케이션을 구성하려면 camel-context.xml에 다음을 추가합니다.

    <camelContext>
      <route id="RS_RestletDemo">
        <from uri="restlet:/demo/{id}" />
        <transform>
          <simple>Request type : ${header.CamelHttpMethod} and ID : ${header.id}</simple>
        </transform>
      </route>
    </camelContext>
    
    <bean id="RestletComponent" class="org.restlet.Component" />
    
    <bean id="RestletComponentService" class="org.apache.camel.component.restlet.RestletComponent">
      <constructor-arg index="0">
        <ref bean="RestletComponent" />
      </constructor-arg>
    </bean>
  2. web.xml에 다음을 추가합니다.

    <!-- Restlet Servlet -->
    <servlet>
      <servlet-name>RestletServlet</servlet-name>
      <servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class>
      <init-param>
        <param-name>org.restlet.component</param-name>
        <param-value>RestletComponent</param-value>
      </init-param>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>RestletServlet</servlet-name>
      <url-pattern>/rs/*</url-pattern>
    </servlet-mapping>

결과

http://localhost:8080/mywebapp/rs/demo/1234 에서 배포된 경로에 액세스할 수 있습니다. localhost:8080 은 서블릿 컨테이너의 서버와 포트이고 mywebapp 은 배포된 웹 앱의 이름입니다.

브라우저에는 다음 내용이 표시됩니다.

"Request type : GET and ID : 1234"
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.