forked from loafle/openapi-generator-original
Add multiple servers support to JS API client (#1974)
* add multiple servers support to JS ES6 * multiple server support in js es5 * using exports in es5 * fix index check * add oas v3 js es6 client to travis
This commit is contained in:
@@ -101,6 +101,11 @@
|
||||
* Allow user to override superagent agent
|
||||
*/
|
||||
this.requestAgent = null;
|
||||
|
||||
/*
|
||||
* Allow user to add superagent plugins
|
||||
*/
|
||||
this.plugins = null;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -378,6 +383,14 @@
|
||||
var url = this.buildUrl(path, pathParams);
|
||||
var request = superagent(httpMethod, url);
|
||||
|
||||
if (this.plugins !== null) {
|
||||
for (var index in this.plugins) {
|
||||
if (this.plugins.hasOwnProperty(index)) {
|
||||
request.use(this.plugins[index])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// apply authentications
|
||||
this.applyAuthToRequest(request, authNames);
|
||||
|
||||
@@ -560,6 +573,46 @@
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets an array of host settings
|
||||
* @returns An array of host settings
|
||||
*/
|
||||
exports.hostSettings = function() {
|
||||
return [
|
||||
{
|
||||
'url': "http://petstore.swagger.io:80/v2",
|
||||
'description': "No description provided",
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
exports.getBasePathFromSettings = function(index, variables={}) {
|
||||
var servers = this.hostSettings();
|
||||
|
||||
// check array index out of bound
|
||||
if (index < 0 || index >= servers.length) {
|
||||
throw new Error("Invalid index " + index + " when selecting the host settings. Must be less than " + servers.length);
|
||||
}
|
||||
|
||||
var server = servers[index];
|
||||
var url = server['url'];
|
||||
|
||||
// go through variable and assign a value
|
||||
for (var variable_name in server['variables']) {
|
||||
if (variable_name in variables) {
|
||||
if (server['variables'][variable_name]['enum_values'].includes(variables[variable_name])) {
|
||||
url = url.replace("{" + variable_name + "}", variables[variable_name]);
|
||||
} else {
|
||||
throw new Error("The variable `" + variable_name + "` in the host URL has invalid value " + variables[variable_name] + ". Must be " + server['variables'][variable_name]['enum_values'] + ".");
|
||||
}
|
||||
} else {
|
||||
// use default value
|
||||
url = url.replace("{" + variable_name + "}", server['variables'][variable_name]['default_value'])
|
||||
}
|
||||
}
|
||||
return url;
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructs a new map or array model from REST data.
|
||||
* @param data {Object|Array} The REST data.
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
(function(factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['ApiClient', 'model/AdditionalPropertiesClass', 'model/Animal', 'model/ApiResponse', 'model/ArrayOfArrayOfNumberOnly', 'model/ArrayOfNumberOnly', 'model/ArrayTest', 'model/Capitalization', 'model/Cat', 'model/Category', 'model/ClassModel', 'model/Client', 'model/Dog', 'model/EnumArrays', 'model/EnumClass', 'model/EnumTest', 'model/File', 'model/FileSchemaTestClass', 'model/FormatTest', 'model/HasOnlyReadOnly', 'model/List', 'model/MapTest', 'model/MixedPropertiesAndAdditionalPropertiesClass', 'model/Model200Response', 'model/ModelReturn', 'model/Name', 'model/NumberOnly', 'model/Order', 'model/OuterComposite', 'model/OuterEnum', 'model/Pet', 'model/ReadOnlyFirst', 'model/SpecialModelName', 'model/Tag', 'model/User', 'api/AnotherFakeApi', 'api/FakeApi', 'api/FakeClassnameTags123Api', 'api/PetApi', 'api/StoreApi', 'api/UserApi'], factory);
|
||||
define(['ApiClient', 'model/AdditionalPropertiesClass', 'model/Animal', 'model/ApiResponse', 'model/ArrayOfArrayOfNumberOnly', 'model/ArrayOfNumberOnly', 'model/ArrayTest', 'model/Capitalization', 'model/Cat', 'model/Category', 'model/ClassModel', 'model/Client', 'model/Dog', 'model/EnumArrays', 'model/EnumClass', 'model/EnumTest', 'model/File', 'model/FileSchemaTestClass', 'model/FormatTest', 'model/HasOnlyReadOnly', 'model/List', 'model/MapTest', 'model/MixedPropertiesAndAdditionalPropertiesClass', 'model/Model200Response', 'model/ModelReturn', 'model/Name', 'model/NumberOnly', 'model/Order', 'model/OuterComposite', 'model/OuterEnum', 'model/Pet', 'model/ReadOnlyFirst', 'model/SpecialModelName', 'model/Tag', 'model/TypeHolderDefault', 'model/TypeHolderExample', 'model/User', 'api/AnotherFakeApi', 'api/FakeApi', 'api/FakeClassnameTags123Api', 'api/PetApi', 'api/StoreApi', 'api/UserApi'], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// CommonJS-like environments that support module.exports, like Node.
|
||||
module.exports = factory(require('./ApiClient'), require('./model/AdditionalPropertiesClass'), require('./model/Animal'), require('./model/ApiResponse'), require('./model/ArrayOfArrayOfNumberOnly'), require('./model/ArrayOfNumberOnly'), require('./model/ArrayTest'), require('./model/Capitalization'), require('./model/Cat'), require('./model/Category'), require('./model/ClassModel'), require('./model/Client'), require('./model/Dog'), require('./model/EnumArrays'), require('./model/EnumClass'), require('./model/EnumTest'), require('./model/File'), require('./model/FileSchemaTestClass'), require('./model/FormatTest'), require('./model/HasOnlyReadOnly'), require('./model/List'), require('./model/MapTest'), require('./model/MixedPropertiesAndAdditionalPropertiesClass'), require('./model/Model200Response'), require('./model/ModelReturn'), require('./model/Name'), require('./model/NumberOnly'), require('./model/Order'), require('./model/OuterComposite'), require('./model/OuterEnum'), require('./model/Pet'), require('./model/ReadOnlyFirst'), require('./model/SpecialModelName'), require('./model/Tag'), require('./model/User'), require('./api/AnotherFakeApi'), require('./api/FakeApi'), require('./api/FakeClassnameTags123Api'), require('./api/PetApi'), require('./api/StoreApi'), require('./api/UserApi'));
|
||||
module.exports = factory(require('./ApiClient'), require('./model/AdditionalPropertiesClass'), require('./model/Animal'), require('./model/ApiResponse'), require('./model/ArrayOfArrayOfNumberOnly'), require('./model/ArrayOfNumberOnly'), require('./model/ArrayTest'), require('./model/Capitalization'), require('./model/Cat'), require('./model/Category'), require('./model/ClassModel'), require('./model/Client'), require('./model/Dog'), require('./model/EnumArrays'), require('./model/EnumClass'), require('./model/EnumTest'), require('./model/File'), require('./model/FileSchemaTestClass'), require('./model/FormatTest'), require('./model/HasOnlyReadOnly'), require('./model/List'), require('./model/MapTest'), require('./model/MixedPropertiesAndAdditionalPropertiesClass'), require('./model/Model200Response'), require('./model/ModelReturn'), require('./model/Name'), require('./model/NumberOnly'), require('./model/Order'), require('./model/OuterComposite'), require('./model/OuterEnum'), require('./model/Pet'), require('./model/ReadOnlyFirst'), require('./model/SpecialModelName'), require('./model/Tag'), require('./model/TypeHolderDefault'), require('./model/TypeHolderExample'), require('./model/User'), require('./api/AnotherFakeApi'), require('./api/FakeApi'), require('./api/FakeClassnameTags123Api'), require('./api/PetApi'), require('./api/StoreApi'), require('./api/UserApi'));
|
||||
}
|
||||
}(function(ApiClient, AdditionalPropertiesClass, Animal, ApiResponse, ArrayOfArrayOfNumberOnly, ArrayOfNumberOnly, ArrayTest, Capitalization, Cat, Category, ClassModel, Client, Dog, EnumArrays, EnumClass, EnumTest, File, FileSchemaTestClass, FormatTest, HasOnlyReadOnly, List, MapTest, MixedPropertiesAndAdditionalPropertiesClass, Model200Response, ModelReturn, Name, NumberOnly, Order, OuterComposite, OuterEnum, Pet, ReadOnlyFirst, SpecialModelName, Tag, User, AnotherFakeApi, FakeApi, FakeClassnameTags123Api, PetApi, StoreApi, UserApi) {
|
||||
}(function(ApiClient, AdditionalPropertiesClass, Animal, ApiResponse, ArrayOfArrayOfNumberOnly, ArrayOfNumberOnly, ArrayTest, Capitalization, Cat, Category, ClassModel, Client, Dog, EnumArrays, EnumClass, EnumTest, File, FileSchemaTestClass, FormatTest, HasOnlyReadOnly, List, MapTest, MixedPropertiesAndAdditionalPropertiesClass, Model200Response, ModelReturn, Name, NumberOnly, Order, OuterComposite, OuterEnum, Pet, ReadOnlyFirst, SpecialModelName, Tag, TypeHolderDefault, TypeHolderExample, User, AnotherFakeApi, FakeApi, FakeClassnameTags123Api, PetApi, StoreApi, UserApi) {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
@@ -226,6 +226,16 @@
|
||||
* @property {module:model/Tag}
|
||||
*/
|
||||
Tag: Tag,
|
||||
/**
|
||||
* The TypeHolderDefault model constructor.
|
||||
* @property {module:model/TypeHolderDefault}
|
||||
*/
|
||||
TypeHolderDefault: TypeHolderDefault,
|
||||
/**
|
||||
* The TypeHolderExample model constructor.
|
||||
* @property {module:model/TypeHolderExample}
|
||||
*/
|
||||
TypeHolderExample: TypeHolderExample,
|
||||
/**
|
||||
* The User model constructor.
|
||||
* @property {module:model/User}
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
/**
|
||||
* OpenAPI Petstore
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
*
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
*
|
||||
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||
*
|
||||
* Do not edit the class manually.
|
||||
*
|
||||
*/
|
||||
|
||||
(function(root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['ApiClient'], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// CommonJS-like environments that support module.exports, like Node.
|
||||
module.exports = factory(require('../ApiClient'));
|
||||
} else {
|
||||
// Browser globals (root is window)
|
||||
if (!root.OpenApiPetstore) {
|
||||
root.OpenApiPetstore = {};
|
||||
}
|
||||
root.OpenApiPetstore.TypeHolderDefault = factory(root.OpenApiPetstore.ApiClient);
|
||||
}
|
||||
}(this, function(ApiClient) {
|
||||
'use strict';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The TypeHolderDefault model module.
|
||||
* @module model/TypeHolderDefault
|
||||
* @version 1.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Constructs a new <code>TypeHolderDefault</code>.
|
||||
* @alias module:model/TypeHolderDefault
|
||||
* @class
|
||||
* @param stringItem {String}
|
||||
* @param numberItem {Number}
|
||||
* @param integerItem {Number}
|
||||
* @param boolItem {Boolean}
|
||||
* @param arrayItem {Array.<Number>}
|
||||
*/
|
||||
var exports = function(stringItem, numberItem, integerItem, boolItem, arrayItem) {
|
||||
var _this = this;
|
||||
|
||||
_this['string_item'] = stringItem;
|
||||
_this['number_item'] = numberItem;
|
||||
_this['integer_item'] = integerItem;
|
||||
_this['bool_item'] = boolItem;
|
||||
_this['array_item'] = arrayItem;
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructs a <code>TypeHolderDefault</code> from a plain JavaScript object, optionally creating a new instance.
|
||||
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
|
||||
* @param {Object} data The plain JavaScript object bearing properties of interest.
|
||||
* @param {module:model/TypeHolderDefault} obj Optional instance to populate.
|
||||
* @return {module:model/TypeHolderDefault} The populated <code>TypeHolderDefault</code> instance.
|
||||
*/
|
||||
exports.constructFromObject = function(data, obj) {
|
||||
if (data) {
|
||||
obj = obj || new exports();
|
||||
if (data.hasOwnProperty('string_item')) {
|
||||
obj['string_item'] = ApiClient.convertToType(data['string_item'], 'String');
|
||||
}
|
||||
if (data.hasOwnProperty('number_item')) {
|
||||
obj['number_item'] = ApiClient.convertToType(data['number_item'], 'Number');
|
||||
}
|
||||
if (data.hasOwnProperty('integer_item')) {
|
||||
obj['integer_item'] = ApiClient.convertToType(data['integer_item'], 'Number');
|
||||
}
|
||||
if (data.hasOwnProperty('bool_item')) {
|
||||
obj['bool_item'] = ApiClient.convertToType(data['bool_item'], 'Boolean');
|
||||
}
|
||||
if (data.hasOwnProperty('array_item')) {
|
||||
obj['array_item'] = ApiClient.convertToType(data['array_item'], ['Number']);
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* @member {String} string_item
|
||||
* @default 'what'
|
||||
*/
|
||||
exports.prototype['string_item'] = 'what';
|
||||
/**
|
||||
* @member {Number} number_item
|
||||
*/
|
||||
exports.prototype['number_item'] = undefined;
|
||||
/**
|
||||
* @member {Number} integer_item
|
||||
*/
|
||||
exports.prototype['integer_item'] = undefined;
|
||||
/**
|
||||
* @member {Boolean} bool_item
|
||||
* @default true
|
||||
*/
|
||||
exports.prototype['bool_item'] = true;
|
||||
/**
|
||||
* @member {Array.<Number>} array_item
|
||||
*/
|
||||
exports.prototype['array_item'] = undefined;
|
||||
|
||||
|
||||
|
||||
return exports;
|
||||
}));
|
||||
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
/**
|
||||
* OpenAPI Petstore
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
*
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
*
|
||||
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||
*
|
||||
* Do not edit the class manually.
|
||||
*
|
||||
*/
|
||||
|
||||
(function(root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['ApiClient'], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// CommonJS-like environments that support module.exports, like Node.
|
||||
module.exports = factory(require('../ApiClient'));
|
||||
} else {
|
||||
// Browser globals (root is window)
|
||||
if (!root.OpenApiPetstore) {
|
||||
root.OpenApiPetstore = {};
|
||||
}
|
||||
root.OpenApiPetstore.TypeHolderExample = factory(root.OpenApiPetstore.ApiClient);
|
||||
}
|
||||
}(this, function(ApiClient) {
|
||||
'use strict';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The TypeHolderExample model module.
|
||||
* @module model/TypeHolderExample
|
||||
* @version 1.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Constructs a new <code>TypeHolderExample</code>.
|
||||
* @alias module:model/TypeHolderExample
|
||||
* @class
|
||||
* @param stringItem {String}
|
||||
* @param numberItem {Number}
|
||||
* @param integerItem {Number}
|
||||
* @param boolItem {Boolean}
|
||||
* @param arrayItem {Array.<Number>}
|
||||
*/
|
||||
var exports = function(stringItem, numberItem, integerItem, boolItem, arrayItem) {
|
||||
var _this = this;
|
||||
|
||||
_this['string_item'] = stringItem;
|
||||
_this['number_item'] = numberItem;
|
||||
_this['integer_item'] = integerItem;
|
||||
_this['bool_item'] = boolItem;
|
||||
_this['array_item'] = arrayItem;
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructs a <code>TypeHolderExample</code> from a plain JavaScript object, optionally creating a new instance.
|
||||
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
|
||||
* @param {Object} data The plain JavaScript object bearing properties of interest.
|
||||
* @param {module:model/TypeHolderExample} obj Optional instance to populate.
|
||||
* @return {module:model/TypeHolderExample} The populated <code>TypeHolderExample</code> instance.
|
||||
*/
|
||||
exports.constructFromObject = function(data, obj) {
|
||||
if (data) {
|
||||
obj = obj || new exports();
|
||||
if (data.hasOwnProperty('string_item')) {
|
||||
obj['string_item'] = ApiClient.convertToType(data['string_item'], 'String');
|
||||
}
|
||||
if (data.hasOwnProperty('number_item')) {
|
||||
obj['number_item'] = ApiClient.convertToType(data['number_item'], 'Number');
|
||||
}
|
||||
if (data.hasOwnProperty('integer_item')) {
|
||||
obj['integer_item'] = ApiClient.convertToType(data['integer_item'], 'Number');
|
||||
}
|
||||
if (data.hasOwnProperty('bool_item')) {
|
||||
obj['bool_item'] = ApiClient.convertToType(data['bool_item'], 'Boolean');
|
||||
}
|
||||
if (data.hasOwnProperty('array_item')) {
|
||||
obj['array_item'] = ApiClient.convertToType(data['array_item'], ['Number']);
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* @member {String} string_item
|
||||
*/
|
||||
exports.prototype['string_item'] = undefined;
|
||||
/**
|
||||
* @member {Number} number_item
|
||||
*/
|
||||
exports.prototype['number_item'] = undefined;
|
||||
/**
|
||||
* @member {Number} integer_item
|
||||
*/
|
||||
exports.prototype['integer_item'] = undefined;
|
||||
/**
|
||||
* @member {Boolean} bool_item
|
||||
*/
|
||||
exports.prototype['bool_item'] = undefined;
|
||||
/**
|
||||
* @member {Array.<Number>} array_item
|
||||
*/
|
||||
exports.prototype['array_item'] = undefined;
|
||||
|
||||
|
||||
|
||||
return exports;
|
||||
}));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user