是否有通过环回以编程方式执行 'lb soap' 的等效方法?

Is there an equivalent way of doing 'lb soap' programmatically with loopback?

根据 documentation 环回,lb soap 创建了基于 soap 的数据源的基础模型。有没有一种编程方式来做到这一点?我想以编程方式执行此操作,以通过动态创建的模型和数据源促进动态 soap 消耗。

免责声明:我是 LoopBack 的合著者和维护者。

这是执行命令lb soap:

的源代码

这是生成模型定义和方法源代码的代码:

exports.generateAPICode = function generateAPICode(selectedDS, operationNames) { // eslint-disable-line max-len
  var apis = [];
  var apiData = {
    'datasource': selectedDS,
    'wsdl': selectedWsdl,
    'wsdlUrl': selectedWsdlUrl,
    'service': selectedService.$name,
    'binding': selectedBinding.$name,
    'operations': getSelectedOperations(selectedBinding, operationNames),
  };
  var code = soapGenerator.generateRemoteMethods(apiData);
  var models = soapGenerator.generateModels(apiData.wsdl, apiData.operations);
  var api = {
    code: code,
    models: models,
  };
  apis.push(api);
  return apis;
};

如您所见,大部分工作委托给 soapGenerator,它指的是 loopback-soap - 一个由 LoopBack 团队维护的较低级别的模块。在您的应用程序中,您可以直接使用 loopback-soap(无需依赖我们的 CLI 工具)并调用其 API 来生成与 SOAP 相关的模型。

不幸的是,我们没有太多关于 loopback-soap 的文档,因为到目前为止它主要是一个内部模块。您必须阅读源代码才能更好地理解。如果您这样做,那么我们很乐意接受为未来用户改进文档的贡献。