Skip to content

Commit f29b091

Browse files
committed
Merge pull request #228 from duncanhall/fix/url-encoded-headers
Avoid URL encoding header values
2 parents b1f85a3 + 39394cb commit f29b091

File tree

4 files changed

+49
-9
lines changed

4 files changed

+49
-9
lines changed

lib/swagger-client.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* swagger-client - swagger.js is a javascript client for use with swaggering APIs.
3-
* @version v2.1.0-alpha.7
3+
* @version v2.1.0-M1
44
* @link http://swagger.io
55
* @license apache 2.0
66
*/
@@ -795,9 +795,7 @@ Operation.prototype.getHeaderParams = function (args) {
795795
if (param.in === 'header') {
796796
var value = args[param.name];
797797
if(Array.isArray(value))
798-
value = this.encodePathCollection(param.collectionFormat, param.name, value);
799-
else
800-
value = this.encodePathParam(value);
798+
value = value.toString();
801799
headers[param.name] = value;
802800
}
803801
}

lib/swagger-client.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/js/swagger-a.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -520,9 +520,7 @@ Operation.prototype.getHeaderParams = function (args) {
520520
if (param.in === 'header') {
521521
var value = args[param.name];
522522
if(Array.isArray(value))
523-
value = this.encodePathCollection(param.collectionFormat, param.name, value);
524-
else
525-
value = this.encodePathParam(value);
523+
value = value.toString();
526524
headers[param.name] = value;
527525
}
528526
}

test/headers.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,50 @@ describe('header extraction', function() {
2323
expect(headers.myHeader).toBe('tony');
2424
});
2525

26+
27+
it('should not URL encode header string values', function() {
28+
var parameters = [
29+
{
30+
in: 'header',
31+
name: 'myHeader',
32+
type: 'string'
33+
}
34+
];
35+
var op = new swagger.Operation({}, 'http', 'test', 'get', '/path', { parameters: parameters });
36+
var args = {
37+
myHeader: 'someKey=someValue'
38+
};
39+
40+
var url = op.urlify(args);
41+
var headers = op.getHeaderParams(args);
42+
43+
expect(url).toBe('http://localhost/path');
44+
expect(headers.myHeader).toBe('someKey=someValue');
45+
});
46+
47+
it('should not URL encode header string array values', function() {
48+
var parameters = [
49+
{
50+
in: 'header',
51+
name: 'myHeader',
52+
type: 'array',
53+
items: {
54+
type: 'string'
55+
}
56+
}
57+
];
58+
var op = new swagger.Operation({}, 'http', 'test', 'get', '/path', { parameters: parameters });
59+
var args = {
60+
myHeader: ['firstParam=firstValue', 'secondParam=secondValue']
61+
};
62+
63+
var url = op.urlify(args);
64+
var headers = op.getHeaderParams(args);
65+
66+
expect(url).toBe('http://localhost/path');
67+
expect(headers.myHeader).toBe('firstParam=firstValue,secondParam=secondValue');
68+
});
69+
2670
it('should extract header params with string array with default collectionFormat', function() {
2771
var parameters = [
2872
{

0 commit comments

Comments
 (0)