REST 서비스에 액세스하기 위한 변수 선언

REST 서비스에 액세스하는 방법에 대한 추가 세부사항을 제공하려는 경우에는 요청자에 변수를 선언할 수 있습니다. 해당 변수는 인터페이스 파트를 기반으로 합니다.

예를 들어, 다음 내용은 WeatherForecast라는 인터페이스 파트를 기반으로 하는 선언입니다.
myService WeatherForcast {@RESTBinding {baseURI="http://www.ibm.com/gateway"}};
위 선언에서는 두 가지 특성 중 하나를 지정할 수 있으며, 각 특성은 다음 세부사항을 지정하는 방법을 제공합니다.
  • 서비스 위치의 상위 레벨 규정자 세트인 기본 URI의 초기값.
  • 서비스로부터 EGL Rich UI 프록시에 제공되는 세션 쿠키를 식별하는 문자열인 세션 쿠키 ID. 이 경우의 서비스 로직은 Stateful이며, 이는 사용자와 로직이 다단계 상호작용을 수행할 수 있음을 의미합니다. 이 설정은 EGL 외부 유형이 IBM® i 프로그램 또는 서비스 프로그램을 EGL REST-RPC 서비스로 사용할 수 있도록 하며 요청자가 Rich UI 애플리케이션인 경우 의미를 갖습니다. 배경 정보는 "IBM i 프로그램을 웹 서비스로 액세스"를 참조하십시오.

    Stateful REST 서비스를 사용하는 경우 연결 및 모든 연관된 IBM i 자원은 서비스 측의 세션이 무효화될 때까지 유지됩니다. 서비스 측 세션은 요청 코드가 serviceLib.endStatefulServiceSession() 시스템 함수를 호출하는 경우 무효화되며, 애플리케이션이 세션을 무효화하는 경우(일반적으로 제한시간으로 인해)에도 무효화됩니다.

지정할 수 있는 두 가지 특성은 @RESTBinding@BindService입니다. @RESTBinding 특성을 사용하면 기본 URI 및 세션 쿠키 ID를 코드에 직접 지정할 수 있습니다. 이 옵션은 간단하지만 유연하지 않습니다. @BindService 특성을 사용하면 배치 디스크립터에 이러한 세부사항을 지정할 수 있으며 이 특성은 구성 시에 변경할 수 있습니다.

이 두 가지 특성은 상호 배타적입니다.
@RESTBinding
기본 URI, 세션 쿠키 ID 또는 둘 다를 코드에 지정하려면 이 특성을 사용하십시오. @RESTBinding에는 다음 필드가 포함되어 있습니다.
baseURI
서비스에 액세스하는 데 사용되고 있는 URI의 첫 번째 규정자를 식별하는 문자열입니다. baseURI의 기본값은 빈 문자열입니다.
sessionCookieID
세션 쿠키의 이름입니다. 기본값은 애플리케이션이 Apache Tomcat에서 실행되는 경우의 세션 ID인 JSESSIONID입니다.
sessionCookieID 필드의 설정은 다음 경우에만 의미를 갖습니다.
  • 서비스가 IBM i 호출 프로그램 또는 서비스 프로그램을 EGL REST-RPC 서비스로 사용할 수 있게 해 주는 EGL 외부 유형입니다.
  • 서비스 로직이 사용자와 로직이 다단계 상호작용을 수행할 수 있음을 의미하는 Stateful입니다.

이 필드의 값은 defaultSessionCookieID 빌드 디스크립터 옵션의 설정을 대체합니다.

@BindService
배치 디스크립터 항목을 사용하여 기본 URI, 쿠키 세션 ID 또는 둘 다를 식별하려면 이 특성을 사용하십시오. 이 특성에는 하나의 필드가 있습니다.
bindingKey
두 가지 세부사항을 포함하는 배치 디스크립터 항목을 식별합니다.
bindingKey 필드를 지정하지 않고 @BindService 특성을 지정할 수 있습니다. 이 경우 이 특성은 인터페이스 파트와 같은 이름을 가진 배치 디스크립터 항목을 식별합니다. 다음 예제는 이 사용법에 대한 예제이며, 이름이 WeatherForecast인 배치 디스크립터 항목을 참조합니다.
MyService WeatherForecast {@BindService{}}

EGL 배치 디스크립터를 설정하는 데 대한 세부사항은 "배치 디스크립터에 REST 바인딩 추가"를 참조하십시오.