프로그래밍/PC
Delphi XE2 에서 DataSnap REST Application Client
사악신
2012. 7. 13. 17:18
프로젝트에서 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;
끝~
반응형