소스 검색

Change to fix the naming for elements for an array from the element name(XmlElement) defined with array rather than determining it from the element model definition(XmlRootElement)

bubble
Ritesh Garg 7 년 전
부모
커밋
8b01247192
1개의 변경된 파일37개의 추가작업 그리고 11개의 파일을 삭제
  1. +37
    -11
      src/main/javascript/view/partials/signature.js

+ 37
- 11
src/main/javascript/view/partials/signature.js 파일 보기

@@ -704,6 +704,18 @@ SwaggerUi.partials.signature = (function () {

return result;
};
var getPrefix = function (name, xml) {
var result = name || '';

xml = xml || {};

if (xml.prefix) {
result = xml.prefix + ':' + result;
}

return result;
};

var getNamespace = function (xml) {
var namespace = '';
@@ -739,8 +751,12 @@ SwaggerUi.partials.signature = (function () {
var attributes = [];

if (!items) { return getErrorMessage(); }

value = createSchemaXML(name, items, models, config);
var key = name;
// If there is a name specified for the array elements, use that for the array elements name | https://github.com/swagger-api/swagger-ui/issues/2577
if(items.xml && items.xml.name) {
key = items.xml.name;
}
value = createSchemaXML(key, items, models, config);

if (namespace) {
attributes.push(namespace);
@@ -827,7 +843,7 @@ SwaggerUi.partials.signature = (function () {

if (namespace) {
attrs.push(namespace);
}
}

if (!properties && !additionalProperties) { return getErrorMessage(); }

@@ -872,9 +888,10 @@ SwaggerUi.partials.signature = (function () {
var output, index;
config = config || {};
config.modelsToIgnore = config.modelsToIgnore || [];
var descriptor = _.isString($ref) ? getDescriptorByRef($ref, name, models, config)
: getDescriptor(name, definition, models, config);
if (!descriptor) {
return getErrorMessage();
}
@@ -904,10 +921,10 @@ SwaggerUi.partials.signature = (function () {
if (arguments.length < 4) {
throw new Error();
}

this.config = config || {};
this.config.modelsToIgnore = this.config.modelsToIgnore || [];
this.name = getName(name, definition.xml);
// name is already set by getDescriptorByRef or getDescriptor function depending on the type. Only prefix, if present is needed to be set here | https://github.com/swagger-api/swagger-ui/issues/2577
this.name = getPrefix(name, definition.xml);
this.definition = definition;
this.models = models;
this.type = type;
@@ -917,8 +934,15 @@ SwaggerUi.partials.signature = (function () {
var modelType = simpleRef($ref);
var model = models[modelType] || {};
var type = model.definition && model.definition.type ? model.definition.type : 'object';
name = name || model.name;

// If model definition xml name is present, then that will be preferred over model name. This is the case of preferring XmlElement name over XmlRootElement name if XmlElement name is provided | https://github.com/swagger-api/swagger-ui/issues/2577
if(model.definition.xml && model.definition.xml.name) {
name = name || model.definition.xml.name || model.name;
}
// else only model name will be considered for determination | https://github.com/swagger-api/swagger-ui/issues/2577
else {
name = name || model.name;
}
if (config.modelsToIgnore.indexOf($ref) > -1) {
type = 'loop';
config.loopTo = modelType;
@@ -929,13 +953,15 @@ SwaggerUi.partials.signature = (function () {
if (!model.definition) {
return null;
}

return new Descriptor(name, type, model.definition, models, config);
return new Descriptor(name, type, model.definition, models, config);
}

function getDescriptor (name, definition, models, config){
var type = definition.type || 'object';

// If definition xml name is present, then that will be preferred over name | https://github.com/swagger-api/swagger-ui/issues/2577
if(definition.xml && definition.xml.name) {
name = definition.xml.name || name;
}
if (!definition) {
return null;
}


불러오는 중...
취소
저장