我在Delphi XE3中实现了一个REST服务器API(大约十年来第一次使用Delphi,所以有点生疏)。目前它使用Indy服务器进行调试,但最终它将是一个ISAPI DLL。
现在我已经实现了许多TDSServerClass类,并希望在类方法中访问请求头。因此,例如当用户请求mysite.com/datasnap/rest/foo/bar时,我希望能够在名为bar的foo类方法中读取标头。这可能吗?
如果没有,是否可以在进入REST类方法之前创建传入请求的全局过滤器?我需要检查传入请求的API密钥和用户身份验证,而不确定实现的最佳方法。感谢。
答案 0 :(得分:2)
我不知道XE3中是否有任何变化,但在XE2中你可以做到以下几点:
uses
Web.HTTPApp,
Datasnap.DSHTTPWebBroker;
function TServerMethods1.EchoString(Value: string): string;
var
Module: TWebModule;
begin
Module := GetDataSnapWebModule;
Result := Module.Request.RemoteIP + ': ' + Value;
end;