loopback remote方法:参数验证

时间:2016-11-25 11:04:21

标签: loopbackjs

是否有一个表单使环回自动验证远程方法中的输入参数?

假设我们有以下远程方法的定义:

  WebuserModel.remoteMethod('overLogin',  {
      description: "Performs a Webuser's login to the system",
      accepts: [
        {
          arg: 'credentials', type: {
            "username": { type: "string", required:true },
            "password": { type: "string", required: true }
          },
          http: {source: 'body'},
          required: true
        },
      ],
      returns: {arg: 'accesToken', type: "object", root: true},
      http: {path: '/login', verb: 'post'}
    }

我希望loopback能够对每个请求执行输入参数的验证,如果传递的对象不符合定义的模式(具有两个强制属性的强制对象),则会引发错误。

显然它不会发生。 任何线索?

1 个答案:

答案 0 :(得分:1)

免责声明:我是LoopBack的核心开发人员,也是strong-remoting@3.x中参数验证的作者。

LoopBack不支持在调用远程方法时验证客户端提供的嵌套对象属性。现在,我们仅检查该值是否为对象,请参阅强远程处理中的lib/types/object.js

在即将发布的LoopBack 4版本中,我们计划支持输入参数的完整OpenAPI和/或JSON Schema验证,请参阅https://github.com/strongloop/loopback-next/issues/118

根据GitHub问题中的评论,将基于JSONSchema的验证添加到LoopBack 3.x应该相对容易。