본문 바로가기
프로그래밍/PC

Delphi XE2 에서 DataSnap REST Application Client

by 사악신 2012. 7. 13.

프로젝트에서 New Item 을 실행한 후, DataSnap REST Client Module 을 추가한다.

 

 

REST Application Server 가 다른 서버에 위치하는 경우엔 Remote Server 를 선택한다.

 

 

해당 서버가 단독 실행형이 아닌 IIS 에서 동작한다면, IIS module 을 선택한다.

 

 

 

Host name 에 서버의 주소를 입력하고, Port 는 IIS 의 포트를 입력한다. 각종 테스트로 인하여 예제를 든 서버의 경우 9090 포트를 사용하고 있다. URL path 에 어플리케이션 서버가 위치하고 있는 경로를 입력한다.(예로 든 IIS 설정은 

2012/06/05 - [프로그래밍/Delphi] - DataSnap REST Application ISAPI 배포 - IIS 7.5 의 내용 참고)

 

Test Connection 버튼을 눌러 정상적으로 연결되는지 확인한다.

 

 

 

Finish 버튼을 클릭하면 자동으로 소스가 생성된다.(서버와 통신을 통하여 호출시 필요한 소스가 자동으로 생성된다.)

 

 

이름을 변경하고 모두 저장한다.(네임스페이스 등을 이용하여 소스를 정리하는 것이 좋을 것 같다. 일단, 예전 네임스페이스가 지원되지 않았을 때의 네이밍 규칙을 사용하여 저장하였다.)

 

 

 

이후, REST API 호출은 다음과 같이 사용한다.

var
  Keyword, Result: String;
  JSONArray: TJSONArray;
begin
  Keyword := '구로';
  JSONArray := ClientModuleILPost.ServerMethodsPostClient.ZipcodeData(Keyword, 1, 10);
  Result := JSONArray.ToString;

 

호출시 클라이언트 모듈을 재생성 시키려면 다음과 같이 한다.

var
  Keyword, Result: String;
  JSONArray: TJSONArray;
begin
  Keyword := '구로';
  if Assigned(ClientModuleILPost) then FreeAndNil(ClientModuleILPost);
  ClientModuleILPost := TClientModuleILPost.Create(nil);
  JSONArray := ClientModuleILPost.ServerMethodsPostClient.ZipcodeData(Keyword, 1, 10);
  Result := JSONArray.ToString;
end;

 

모듈쪽 소스는 다음과 같이 변경한다.

initialization
  ClientModuleILPost := nil;
// ClientModuleILPost := TClientModuleILPost.Create(nil);
//
//finalization
// ClientModuleILPost.Free;

 

끝~

반응형

댓글