我在 delphi XE2 中使用 REST datasnap 编写了一个小型 REST 服务器。HTTP 方法(POST、PUT 等)和 delphi 中定义的函数之间存在默认映射,这是由 delphi 组件完成的。
这个 wiki 条目描述了 URI 映射,但也注意到程序员可以覆盖默认映射。
映射模式可以被覆盖。用户可以根据类名和方法名参数覆盖每种类型的映射。
但我没有找到任何解释如何覆盖映射。
如何更改默认映射?
我在 delphi XE2 中使用 REST datasnap 编写了一个小型 REST 服务器。HTTP 方法(POST、PUT 等)和 delphi 中定义的函数之间存在默认映射,这是由 delphi 组件完成的。
这个 wiki 条目描述了 URI 映射,但也注意到程序员可以覆盖默认映射。
映射模式可以被覆盖。用户可以根据类名和方法名参数覆盖每种类型的映射。
但我没有找到任何解释如何覆盖映射。
如何更改默认映射?
TDSHTTPService 组件具有事件,您可以在其中指定每种类型的映射。这些事件称为 RESTMethodNameMapDELETE、RESTMethodNameMapGET、RESTMethodNameMapPOST 和 RESTMethodNameMapPUT。
Marco Cantù的 REST 白皮书中也解释了这一点,其中解释了很多关于 REST 和 Datasnap 的内容。
我想知道同样的事情,并做了一些实验。似乎至少部分可以控制 url。具体来说,我尝试更改 url 的类名部分。
本质上,如果您使用的是 TComponent 后代,则可以将类命名为任何名称。但是,如果您从 TDataModule 下降,这将不起作用。在这种情况下,您可以创建和别名类,您可以命名您想要的从 TDataModule 中继承的类。
尝试绑定到此时,您需要在客户端绑定中进行一些清理,但它似乎有效,至少对于简单的测试。
在 Embarcadero 论坛上查看更多信息。
https://forums.embarcadero.com/thread.jspa?threadID=77624&tstart=0