From 65d81745ed1e206af0052a0a5bf5cc02581d96db Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Wed, 23 Nov 2016 12:00:13 -0800 Subject: [PATCH] blob handling, render download link for application/octet-stream --- src/main/javascript/view/OperationView.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/javascript/view/OperationView.js b/src/main/javascript/view/OperationView.js index b367664a..ead3e6e3 100644 --- a/src/main/javascript/view/OperationView.js +++ b/src/main/javascript/view/OperationView.js @@ -672,6 +672,17 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({ contentType = contentType.split(';')[0].trim(); } } + if(contentType) { + if(typeof content === 'string') { + var arrayBuffer = new ArrayBuffer(content.length); + var uint8Array = new Uint8Array(arrayBuffer); + for (var i = 0; i < content.length; i++) { + uint8Array[i] = content.charCodeAt(i); + } + + content = new Blob([uint8Array], { type: contentType }); + } + } $('.response_body', $(this.el)).removeClass('json'); $('.response_body', $(this.el)).removeClass('xml'); @@ -687,7 +698,9 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({ pre = $('
').append(code);
 
       // JSON
-    } else if (headers['Content-Disposition'] && (/attachment/).test(headers['Content-Disposition']) ||
+    } else if (
+        contentType === 'application/octet-stream' ||
+        headers['Content-Disposition'] && (/attachment/).test(headers['Content-Disposition']) ||
         headers['content-disposition'] && (/attachment/).test(headers['content-disposition']) ||
         headers['Content-Description'] && (/File Transfer/).test(headers['Content-Description']) ||
         headers['content-description'] && (/File Transfer/).test(headers['content-description'])) {