Browse Source

Response headers not being displayed for either 200 or other responses #1117

bubble
Anna Bodnia 8 years ago
parent
commit
2b377bfa9e
4 changed files with 8635 additions and 8567 deletions
  1. +8576
    -8555
      dist/swagger-ui.js
  2. +11
    -11
      dist/swagger-ui.min.js
  3. +23
    -1
      src/main/javascript/view/OperationView.js
  4. +25
    -0
      src/main/template/operation.handlebars

+ 8576
- 8555
dist/swagger-ui.js
File diff suppressed because it is too large
View File


+ 11
- 11
dist/swagger-ui.min.js
File diff suppressed because it is too large
View File


+ 23
- 1
src/main/javascript/view/OperationView.js View File

@@ -154,7 +154,8 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
this.model.responseMessages.push({
code: code,
message: value.description,
responseModel: schema
responseModel: schema,
headers: value.headers
});
}
}
@@ -169,6 +170,7 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
this.model.successCode = key;
if (typeof value === 'object' && typeof value.createJSONSample === 'function') {
this.model.successDescription = value.description;
this.model.headers = this.parseResponseHeaders(value.headers);
signatureModel = {
sampleJSON: JSON.stringify(value.createJSONSample(), void 0, 2),
isParam: false,
@@ -241,6 +243,26 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
return this;
},

parseResponseHeaders: function (data) {
var HEADERS_SEPARATOR = '; ';
var headers = _.clone(data);

_.forEach(headers, function (header) {
var other = [];
_.forEach(header, function (value, key) {
var properties = ['type', 'description'];
if (properties.indexOf(key.toLowerCase()) === -1) {
other.push(key + ': ' + value);
}
});

other.join(HEADERS_SEPARATOR);
header.other = other;
});

return headers;
},

addParameter: function(param, consumes) {
// Render a parameter
param.consumes = consumes;


+ 25
- 0
src/main/template/operation.handlebars View File

@@ -48,6 +48,31 @@
<div class="response-content-type" />

{{/if}}

{{#if headers}}
<h4 data-sw-translate>Headers</h4>
<table class="headers">
<thead>
<tr>
<th style="width: 100px; max-width: 100px" data-sw-translate>Header</th>
<th style="width: 310px; max-width: 310px" data-sw-translate>Description</th>
<th style="width: 200px; max-width: 200px" data-sw-translate>Type</th>
<th style="width: 320px; max-width: 320px" data-sw-translate>Other</th>
</tr>
</thead>
<tbody>
{{#each headers}}
<tr>
<td>{{@key}}</td>
<td>{{this.description}}</td>
<td>{{this.type}}</td>
<td>{{this.other}}</td>
</tr>
{{/each}}
</tbody>
</table>
{{/if}}

<form accept-charset='UTF-8' class='sandbox'>
<div style='margin:0;padding:0;display:inline'></div>
{{#if parameters}}


Loading…
Cancel
Save