Есть ли эквивалентный способ сделать "lb soap" программно с помощью loopback?

Согласно документации на петлю, lb soap создает модели базового источника данных на основе мыла. Есть ли программный способ сделать это? Я хочу сделать это программно, чтобы облегчить динамическое потребление мыла с помощью динамически создаваемых моделей и источников данных.

1 ответ

Решение

Отказ от ответственности: я соавтор и сопровождающий 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 поскольку до сих пор это был в основном внутренний модуль. Вам нужно будет прочитать исходный код, чтобы лучше понять. Если вы сделаете это, мы с радостью примем материалы, улучшающие документацию для будущих пользователей.

Другие вопросы по тегам