mORMot Rest Debug 调试

mORMot 的调试一定要记录一下,由于他封装了,而且如果一旦用的是“第三方”的“第三方”,由于经过的进一步封装,导致内部关系看不清了。

1:通过 Delphi 内部的REST Debugger可以方便调试,但在调试前要清楚定义的接口是否包含认证。

image

2:通过浏览器也可以调试。但需要知道mORMot 参数机制,比如要给WEB API方,他的参数是怎么定义的,如果是函数他的返回结果是怎么定义的。

比如

type
  IServiceMethods = interface(IInvokable)
    ['{B963CED7-8F03-4484-9DD7-819598E65D69}']
    function Sum(val1, val2: Double): Double;
    function Mult(val1, val2: Double): Double;
    function RandomNumber: Int64;
    function DelCMDHis(const aCMD_ID: string): boolean; overload;
    function DelCMDHisID(const aID: integer): boolean; overload;
  end;

  TServiceMethods = class(TInjectableObject, IServiceMethods)
  public
    function Sum(val1, val2: Double): Double;
    function Mult(val1, val2: Double): Double;
    function RandomNumber: Int64;
    function DelCMDHis(const aCMD_ID: string): boolean; overload;
    function DelCMDHisID(const aID: integer): boolean; overload;
  end;

客户端要调试 Sum 这个WEB API,那么需要知道,

  1. 服务器的认证方式,
  2. “根”的名字也就是模型关联名字;
  3. 方法“组”的名字,也就是接口实例名。
  4. 然后参数都是数组
  5. 结果都是 Result的json

http://192.168.22.30:8099/root/ServiceMethods/RandomNumber

假设服务器端没有认证。

执行的结果将是

image

如果调用的是Sum,那么可以推导将会是 http://192.168.22.30:8099/root/ServiceMethods/Sum

另外由于需要传递参数我们通过POST方式,那么——

image

这里需要注意结果和参数的表达方式。

posted @ 2022-05-03 00:50  海利鸟  阅读(184)  评论(0编辑  收藏  举报