#1248 createXMLSample added XML display for Model in definitions
This commit is contained in:
36
dist/swagger-ui.js
vendored
36
dist/swagger-ui.js
vendored
@@ -26868,12 +26868,13 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
var createArrayXML = function (name, items, xml) {
|
var createArrayXML = function (name, items, xml, models) {
|
||||||
var value;
|
var value;
|
||||||
|
|
||||||
if (!items) { return ''; }
|
if (!items) { return ''; }
|
||||||
|
|
||||||
value = createXMLSample(name, items) + createXMLSample(name, items);
|
value = createXMLSample(name, items, models);
|
||||||
|
value += value;
|
||||||
|
|
||||||
xml = xml || {};
|
xml = xml || {};
|
||||||
|
|
||||||
@@ -26884,7 +26885,19 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
return value;
|
return value;
|
||||||
};
|
};
|
||||||
|
|
||||||
function createObjectXML (name, properties, xml) {
|
var getModelXML = function (modelType, models) {
|
||||||
|
var type = simpleRef(modelType);
|
||||||
|
var model = models[type] || {};
|
||||||
|
var name = model.name || modelType;
|
||||||
|
|
||||||
|
if (!model.definition) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return createXMLSample(name, model.definition, models);
|
||||||
|
};
|
||||||
|
|
||||||
|
function createObjectXML (name, properties, xml, models) {
|
||||||
var props;
|
var props;
|
||||||
|
|
||||||
if (!properties) { return ''; }
|
if (!properties) { return ''; }
|
||||||
@@ -26892,13 +26905,13 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
properties = properties || {};
|
properties = properties || {};
|
||||||
|
|
||||||
props = _.map(properties, function (prop, key) {
|
props = _.map(properties, function (prop, key) {
|
||||||
return createXMLSample(key, prop);
|
return createXMLSample(key, prop, models);
|
||||||
}).join('');
|
}).join('');
|
||||||
|
|
||||||
return wrapTag(name, props);
|
return wrapTag(name, props);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createXMLSample (name, definition) {
|
function createXMLSample (name, definition, models) {
|
||||||
var primitivesMap = {
|
var primitivesMap = {
|
||||||
'string': {
|
'string': {
|
||||||
'date': new Date(1).toISOString().split('T')[0],
|
'date': new Date(1).toISOString().split('T')[0],
|
||||||
@@ -26920,8 +26933,13 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
var xml = definition.xml || {};
|
var xml = definition.xml || {};
|
||||||
var attributes = [];
|
var attributes = [];
|
||||||
var namespace = getNamespace(xml);
|
var namespace = getNamespace(xml);
|
||||||
|
var $ref = definition.$ref;
|
||||||
var value;
|
var value;
|
||||||
|
|
||||||
|
if (_.isString($ref)) {
|
||||||
|
return getModelXML($ref, models);
|
||||||
|
}
|
||||||
|
|
||||||
name = getName(name, xml);
|
name = getName(name, xml);
|
||||||
|
|
||||||
if (namespace) {
|
if (namespace) {
|
||||||
@@ -26931,12 +26949,16 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
|
|
||||||
// Here are going to be else statements for Array and Object types
|
// Here are going to be else statements for Array and Object types
|
||||||
if (_.keys(primitivesMap).indexOf(type) !== -1) {
|
if (_.keys(primitivesMap).indexOf(type) !== -1) {
|
||||||
|
if (_.isArray(definition.enum)){
|
||||||
|
value = definition.enum[0];
|
||||||
|
} else {
|
||||||
value = definition.example || primitivesMap[type][format] || primitivesMap[type].default;
|
value = definition.example || primitivesMap[type][format] || primitivesMap[type].default;
|
||||||
|
}
|
||||||
return wrapTag(name, value, attributes);
|
return wrapTag(name, value, attributes);
|
||||||
} else if (type === 'array') {
|
} else if (type === 'array') {
|
||||||
return createArrayXML(name, definition.items, xml);
|
return createArrayXML(name, definition.items, xml, models);
|
||||||
} else if (type === 'object') {
|
} else if (type === 'object') {
|
||||||
return createObjectXML(name, definition.properties, xml);
|
return createObjectXML(name, definition.properties, xml, models);
|
||||||
}
|
}
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
|
|||||||
2
dist/swagger-ui.min.js
vendored
2
dist/swagger-ui.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -701,12 +701,13 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
var createArrayXML = function (name, items, xml) {
|
var createArrayXML = function (name, items, xml, models) {
|
||||||
var value;
|
var value;
|
||||||
|
|
||||||
if (!items) { return ''; }
|
if (!items) { return ''; }
|
||||||
|
|
||||||
value = createXMLSample(name, items) + createXMLSample(name, items);
|
value = createXMLSample(name, items, models);
|
||||||
|
value += value;
|
||||||
|
|
||||||
xml = xml || {};
|
xml = xml || {};
|
||||||
|
|
||||||
@@ -717,7 +718,19 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
return value;
|
return value;
|
||||||
};
|
};
|
||||||
|
|
||||||
function createObjectXML (name, properties, xml) {
|
var getModelXML = function (modelType, models) {
|
||||||
|
var type = simpleRef(modelType);
|
||||||
|
var model = models[type] || {};
|
||||||
|
var name = model.name || modelType;
|
||||||
|
|
||||||
|
if (!model.definition) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return createXMLSample(name, model.definition, models);
|
||||||
|
};
|
||||||
|
|
||||||
|
function createObjectXML (name, properties, xml, models) {
|
||||||
var props;
|
var props;
|
||||||
|
|
||||||
if (!properties) { return ''; }
|
if (!properties) { return ''; }
|
||||||
@@ -725,13 +738,13 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
properties = properties || {};
|
properties = properties || {};
|
||||||
|
|
||||||
props = _.map(properties, function (prop, key) {
|
props = _.map(properties, function (prop, key) {
|
||||||
return createXMLSample(key, prop);
|
return createXMLSample(key, prop, models);
|
||||||
}).join('');
|
}).join('');
|
||||||
|
|
||||||
return wrapTag(name, props);
|
return wrapTag(name, props);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createXMLSample (name, definition) {
|
function createXMLSample (name, definition, models) {
|
||||||
var primitivesMap = {
|
var primitivesMap = {
|
||||||
'string': {
|
'string': {
|
||||||
'date': new Date(1).toISOString().split('T')[0],
|
'date': new Date(1).toISOString().split('T')[0],
|
||||||
@@ -753,8 +766,13 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
var xml = definition.xml || {};
|
var xml = definition.xml || {};
|
||||||
var attributes = [];
|
var attributes = [];
|
||||||
var namespace = getNamespace(xml);
|
var namespace = getNamespace(xml);
|
||||||
|
var $ref = definition.$ref;
|
||||||
var value;
|
var value;
|
||||||
|
|
||||||
|
if (_.isString($ref)) {
|
||||||
|
return getModelXML($ref, models);
|
||||||
|
}
|
||||||
|
|
||||||
name = getName(name, xml);
|
name = getName(name, xml);
|
||||||
|
|
||||||
if (namespace) {
|
if (namespace) {
|
||||||
@@ -764,12 +782,16 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
|
|
||||||
// Here are going to be else statements for Array and Object types
|
// Here are going to be else statements for Array and Object types
|
||||||
if (_.keys(primitivesMap).indexOf(type) !== -1) {
|
if (_.keys(primitivesMap).indexOf(type) !== -1) {
|
||||||
|
if (_.isArray(definition.enum)){
|
||||||
|
value = definition.enum[0];
|
||||||
|
} else {
|
||||||
value = definition.example || primitivesMap[type][format] || primitivesMap[type].default;
|
value = definition.example || primitivesMap[type][format] || primitivesMap[type].default;
|
||||||
|
}
|
||||||
return wrapTag(name, value, attributes);
|
return wrapTag(name, value, attributes);
|
||||||
} else if (type === 'array') {
|
} else if (type === 'array') {
|
||||||
return createArrayXML(name, definition.items, xml);
|
return createArrayXML(name, definition.items, xml, models);
|
||||||
} else if (type === 'object') {
|
} else if (type === 'object') {
|
||||||
return createObjectXML(name, definition.properties, xml);
|
return createObjectXML(name, definition.properties, xml, models);
|
||||||
}
|
}
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
|
|||||||
@@ -2,6 +2,67 @@
|
|||||||
|
|
||||||
describe('SwaggerUi.partials.signature tests', function () {
|
describe('SwaggerUi.partials.signature tests', function () {
|
||||||
var sut = SwaggerUi.partials.signature;
|
var sut = SwaggerUi.partials.signature;
|
||||||
|
var models = {
|
||||||
|
'Pet': {
|
||||||
|
'definition': {
|
||||||
|
'type': 'object',
|
||||||
|
'required': [ 'name', 'photoUrls' ],
|
||||||
|
'properties': {
|
||||||
|
'id': {
|
||||||
|
'type': 'integer',
|
||||||
|
'format': 'int64 '
|
||||||
|
},
|
||||||
|
'category': { '$ref': '#/definitions/Category' },
|
||||||
|
'name': {
|
||||||
|
'type': 'string',
|
||||||
|
'example': 'doggie'
|
||||||
|
},
|
||||||
|
'photoUrls': {
|
||||||
|
'type': 'array',
|
||||||
|
'xml': {
|
||||||
|
'name': 'photoUrl',
|
||||||
|
'wrapped':true
|
||||||
|
},
|
||||||
|
'items': { 'type': 'string' }
|
||||||
|
},
|
||||||
|
'tags': {
|
||||||
|
'type': 'array',
|
||||||
|
'xml': { 'name': 'tag', 'wrapped':true},
|
||||||
|
'items': { '$ref': '#/definitions/Tag' }
|
||||||
|
},
|
||||||
|
'status': {
|
||||||
|
'type': 'string',
|
||||||
|
'description': 'pet status in the store',
|
||||||
|
'enum':[ 'available', 'pending', 'sold' ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'xml': { 'name': 'Pet' }
|
||||||
|
},
|
||||||
|
'name': 'Pet'
|
||||||
|
},
|
||||||
|
'Category': {
|
||||||
|
'definition': {
|
||||||
|
'type': 'object',
|
||||||
|
'properties': {
|
||||||
|
'id': { 'type': 'integer', 'format': 'int64' },
|
||||||
|
'name': { 'type': 'string' }
|
||||||
|
},
|
||||||
|
'xml': { 'name': 'Category' }
|
||||||
|
},
|
||||||
|
'name': 'Category'
|
||||||
|
},
|
||||||
|
'Tag': {
|
||||||
|
'definition': {
|
||||||
|
'type': 'object',
|
||||||
|
'properties': {
|
||||||
|
'id': { 'type': 'integer', 'format': 'int64' },
|
||||||
|
'name': { 'type': 'string' }
|
||||||
|
},
|
||||||
|
'xml': { 'name': 'Tag' }
|
||||||
|
},
|
||||||
|
'name': 'Tag'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
describe('method createXMLSample', function () {
|
describe('method createXMLSample', function () {
|
||||||
var date = new Date(1).toISOString().split('T')[0];
|
var date = new Date(1).toISOString().split('T')[0];
|
||||||
@@ -128,9 +189,7 @@ describe('SwaggerUi.partials.signature tests', function () {
|
|||||||
|
|
||||||
expect(sut.createXMLSample(name, definition)).to.equal(expected);
|
expect(sut.createXMLSample(name, definition)).to.equal(expected);
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
describe('array', function () {
|
|
||||||
it('returns tag <animal>string</animal><animal>string</animal> when passing string items with name', function () {
|
it('returns tag <animal>string</animal><animal>string</animal> when passing string items with name', function () {
|
||||||
var expected = '<animal>string</animal><animal>string</animal>';
|
var expected = '<animal>string</animal><animal>string</animal>';
|
||||||
var name = 'animals';
|
var name = 'animals';
|
||||||
@@ -346,9 +405,6 @@ describe('SwaggerUi.partials.signature tests', function () {
|
|||||||
name: 'alien'
|
name: 'alien'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
xml: {
|
|
||||||
wrapped: true
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
cat: {
|
cat: {
|
||||||
@@ -363,5 +419,52 @@ describe('SwaggerUi.partials.signature tests', function () {
|
|||||||
expect(sut.createXMLSample(name, definition)).to.equal(expected);
|
expect(sut.createXMLSample(name, definition)).to.equal(expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('schema is in definitions', function () {
|
||||||
|
|
||||||
|
it('returns array of Tags wrapped into Tags', function () {
|
||||||
|
var expected = '<Tags>' +
|
||||||
|
'<Tag><id>1</id><name>string</name></Tag>' +
|
||||||
|
'<Tag><id>1</id><name>string</name></Tag>' +
|
||||||
|
'</Tags>';
|
||||||
|
var schema = {
|
||||||
|
type: 'array',
|
||||||
|
items: {
|
||||||
|
$ref: '#/definitions/Tag'
|
||||||
|
},
|
||||||
|
xml: {
|
||||||
|
name: 'Tags',
|
||||||
|
wrapped: true
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(sut.createXMLSample('', schema, models)).to.equal(expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns Object with properties Pet and name', function () {
|
||||||
|
var expected = '<Pet>' +
|
||||||
|
'<id>1</id>' +
|
||||||
|
'<Category>' +
|
||||||
|
'<id>1</id>' +
|
||||||
|
'<name>string</name>' +
|
||||||
|
'</Category>' +
|
||||||
|
'<name>doggie</name>' +
|
||||||
|
'<photoUrl>' +
|
||||||
|
'<photoUrl>string</photoUrl>' +
|
||||||
|
'<photoUrl>string</photoUrl>' +
|
||||||
|
'</photoUrl>' +
|
||||||
|
'<tag>' +
|
||||||
|
'<Tag><id>1</id><name>string</name></Tag>' +
|
||||||
|
'<Tag><id>1</id><name>string</name></Tag>' +
|
||||||
|
'</tag>' +
|
||||||
|
'<status>available</status>' +
|
||||||
|
'</Pet>';
|
||||||
|
var schema = {
|
||||||
|
$ref: '#/definitions/Pet'
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(sut.createXMLSample('', schema, models)).to.equal(expected);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user