2014-02-21 1 views
2

최소한의 웹 서비스를 개발해야합니다. 은이 개 기능이 있어야합니다델파이에서 가장 간단한 웹 서비스

  1. senduserdata
  2. sendconfirmation (원격 응용 프로그램은 "모든 말할 것이다 (원격 응용 프로그램은"ID "와"양 "와 같은 사용자에 대한 정보를 보내"senduserdata "호출) 확인 였는지를 ID =의 X를 들어, 노트는 다음과 같습니다 과거 NOTES)

내가 배포 내 경우에는 중요하고 IIS 항상 사용할 수 없습니다 때문에, 실행 IIS을 필요로 SOAP DLL이 그것을 가질 수 있습니다 않았다 th를 드러내는 독립 실행 형 exe e SOAP (또는 REST) 인터페이스?

+0

외부 라이브러리를 찾고 있거나 번들로 제공되는 라이브러리로이를 수행 할 방법이 있는지 잘 모르겠습니다. RemObjects는 ISAPI DLL과 독립 실행 형 응용 프로그램으로 모두 작동 할 수있는 좋은 유료 솔루션을 제공합니다. 오래전에 나는 Indy와 몇 가지 작업을 했었지만 당신이 뭔가를 할 필요가 있다고 생각합니다. Datasnap에는 http://edn.embarcadero.com/article/41305 해결책이있는 것 같습니다. 어쩌면 Delphi Web Script (DWS)를 살펴볼 수도 있습니다. 그들은 뭔가를 가지고 있을지도 모릅니다. – Graymatter

+0

http://xmm의 SOAP 지원이 여전히 약간의 작업이 필요하기 때문에 http://xxm.sf.net/에서 REST와 함께 할 수있는 것과 같은 소리가납니다. –

+0

또 다른 옵션입니다. WCF는 RestFul Json입니다. http://blog.synopse.info/post/2012/03/07/Interface-based-services –

답변

0

RemObjects 시험판을 사용하고 서버 + 클라이언트 프로젝트 그룹에서 SOAP를 통신 프로토콜로 설정하면 (필자는 서버 만 필요함) 필자는 몇 분만에 성공했다.

VCL EXE를 사용하면 훨씬 쉽게 배포 할 수 있습니다 (많은 고객이 있고 dll을 설치하기 위해 IIS에 액세스하는 것은 때로는 어렵습니다).

-1

예, HTTP 서버가 포함 된 Delphi 용 TCP 라이브러리 (예 : Internet Direct (Indy))를 사용할 수 있습니다. Indy를 사용하면 IIS없이 독립 실행 형 응용 프로그램 (또는 더 나은 Windows 서비스)을 만들 수 있습니다. 편안한 웹 응용 프로그램에서

senduserdata 명령은 클라이언트가 다음 users 리소스를 업데이트 할 HTTP PUT 또는 PATCH 요청을 사용

http://example.com/api/users 

같은 URL에 의해 구현 될 것입니다.

사용자 ID 774422에 대한 senduserdate 호출이 서버 측의 델파이 응용 프로그램에서

LStream := TStringStream.Create('{ "amount":100.50, "currency":"EUR" }'); 
    try 
     HTTP := TIdHTTP.Create; 
     try 
     HTTP.Put('http://example.com/api/users/774422', LStream); 
     finally 
     HTTP.Free; 
     end; 
    finally 
     LStream.Free; 
    end; 

처럼 기록 될 것이다하는 TIdHTTPServer 구성 요소는 다음/휴식/사용자 자원과 OnCommandOther에서 HTTP 요청을 수신 이벤트 처리기는 요청 본문 문자열을 추출하고 구문 분석 한 다음 리소스 경로 (/ 774422)에 지정된 ID로 변경 사항을 사용자에게 적용합니다.

+1

... IMHO는 재가공을 재발 명하기위한 좋은 조언이 아닙니다. 나머지 서버를 구축하는 것은 http를 통해 일부 '세상의 모든'콘텐츠를 반환하는 것 이상의 의미가 있습니다. –

+1

SOAP 물건과 그 지저분한 길고 오버 헤드가 많은 봉투에서 멀리 떨어져 있고 싶은 사람들에게 훌륭한 접근법입니다. Indy 규칙에 RESTful 물건! –