繁体   English   中英

如何在Delphi DataSnap REST服务器上映射自定义HTTP方法前缀

[英]How do I map custom HTTP method prefixes on a Delphi DataSnap REST server

使用Delphi的DataSnap创建的RESTful服务基于HTTP方法类型为DataSnap服务器中公开的REST方法提供了前缀的默认映射。 这些如下:

HTTP Method type   Prefix       Example
GET                none         MyValue
POST               Update       UpdateMyValue
PUT                Accept       AcceptMyValue
DELETE             Cancel       CancelMyValue

文档声明“可以覆盖映射模式。用户可以根据类名和方法名参数覆盖每种类型的映射。” 但是,我完全没有找到有关如何执行此操作的任何文档。 我想将PUT的前缀从Accept更改为其他内容。 我怎么做?

我应该注意到,StackOverflow上的另一个帖子( REST Datasnap覆盖URI映射 )试图通过指出TDSHTTPService具有执行此映射的方法来回答这个问题。 同一篇文章还引用了MarcoCantù的DataSnap白皮书,该白皮书据说也描述了如何做到这一点。 该白皮书说:“您可以通过处理DSHTTPWebDispatcher组件的四个相应事件处理程序来自定义这些映射。”

在RAD Studio XE中,TDSHTTPService和TDSHTTPWebDispather组件都有四个特定事件,对应于上面列出的四种HTTP方法,并且用于映射前缀。 XE2及更高版本中不存在这些方法。

虽然可以将DataSnap POST,PUT和DELETE HTTP方法调用映射到XE中的备用前缀,但是在Delphi XE2到Delphi XE8中不可能这样做。 在这些版本中,您必须分别坚持使用Update,Accept和Cancel。 而且,说实话,这不是一个真正的问题。

值得注意的是,您可以使用Embarcadero的企业移动服务(EMS)映射各种HTTP方法调用。 我写了一篇白皮书,并录制了关于Embarcadero EMS的视频演示。 要访问白皮书和视频,请使用以下URL。

http://www.embarcadero.com/rad-in-action/mobilizing-your-business-with-cary-jensen

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM