node-uuap
Version:
baidu uuap in nodejs
46 lines (40 loc) • 1.43 kB
JavaScript
/**
* @file 获取uic数据
* @author liulangyu(liulangyu@baidu.com)
*/
var config = require('./config');
var soap = require('soap');
/**
* 各种服务数据获取
* 详细接口见文档:http://wiki.baidu.com/pages/viewpage.action?pageId=65311151
*
* @public
* @param {string} serviceName 服务名称,uuap提供的服务接口
* @param {string} interfaceName 接口名称,每个服务提供多个接口
* @param {Object} params 接口参数,多参数形式{arg0: '', arg1: ''}
* @param {Function} cb 回调
* @example service('getUserByUsername', {arg0: 'liulangyu'}, function () {})
*/
exports.uic = function (serviceName, interfaceName, params, cb) {
// 简单验证下参数
var len = arguments.length;
if (len !== 4) {
throw new Error('params wrong: required 4, but get ' + len);
}
// 验证serviceName
if (!~config.services.indexOf(serviceName)) {
throw new Error('no such service: `' + serviceName + '`, please check the doc');
}
var url = config.wsUrl + serviceName + '?wsdl';
soap.createClient(url, function (err, client) {
if (err) {
throw new Error('error create new soap client.' + err.toString());
}
else {
client.addSoapHeader({appKey: config.appKey});
client[interfaceName](params, function (err, result) {
cb(result);
});
}
});
};