Skip to content
This repository was archived by the owner on Sep 17, 2025. It is now read-only.

Commit a2c79ef

Browse files
author
Phil Sturgeon
committed
Support example and x-example in Swagger Properties
1 parent 24cc71a commit a2c79ef

File tree

2 files changed

+74
-2
lines changed

2 files changed

+74
-2
lines changed

src/parsers/swagger/v2.0/Parser.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,6 +1252,12 @@ methods.convertParameterObjectIntoParameter = (parameterEntry) => {
12521252
applicableContexts
12531253
}
12541254

1255+
if (typeof parameter.example !== 'undefined') {
1256+
paramInstance.examples = List([parameter.example])
1257+
} else if (typeof parameter['x-example'] !== 'undefined') {
1258+
paramInstance.examples = List([parameter['x-example']])
1259+
}
1260+
12551261
if (parameter.type === 'array' && parameter.items) {
12561262
const { value } = methods.convertParameterObjectIntoParameter({
12571263
key: null,

src/parsers/swagger/v2.0/__tests__/Parser.spec.js

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2772,7 +2772,8 @@ describe('parsers/swagger/v2.0/Parser.js', () => {
27722772
maximum: 321,
27732773
minimum: 123,
27742774
multipleOf: 5,
2775-
default: 100
2775+
default: 100,
2776+
example: 12345
27762777
}
27772778
}
27782779

@@ -2787,6 +2788,9 @@ describe('parsers/swagger/v2.0/Parser.js', () => {
27872788
required: true,
27882789
type: 'integer',
27892790
default: 100,
2791+
examples: List([
2792+
12345
2793+
]),
27902794
constraints: List([
27912795
new Constraint.Maximum(321),
27922796
new Constraint.Minimum(123),
@@ -2816,7 +2820,8 @@ describe('parsers/swagger/v2.0/Parser.js', () => {
28162820
maximum: 321,
28172821
minimum: 123,
28182822
multipleOf: 5,
2819-
default: 100
2823+
default: 100,
2824+
example: 12345
28202825
}
28212826
}
28222827
}
@@ -2838,6 +2843,7 @@ describe('parsers/swagger/v2.0/Parser.js', () => {
28382843
required: true,
28392844
type: 'integer',
28402845
default: 100,
2846+
examples: List([12345]),
28412847
constraints: List([
28422848
new Constraint.Maximum(321),
28432849
new Constraint.Minimum(123),
@@ -2920,6 +2926,66 @@ describe('parsers/swagger/v2.0/Parser.js', () => {
29202926
const actual = inputs.map(input => __internals__.convertParameterObjectIntoParameter(input))
29212927
expect(actual).toEqual(expected)
29222928
})
2929+
2930+
it('should respect x-example too', () => {
2931+
const inputs = [
2932+
{
2933+
key: 'UserId',
2934+
value: {
2935+
name: 'userId',
2936+
in: 'query',
2937+
type: 'integer',
2938+
required: true,
2939+
'x-example': 23456
2940+
}
2941+
},
2942+
{
2943+
key: 'ShowThing',
2944+
value: {
2945+
name: 'showThing',
2946+
in: 'query',
2947+
type: 'boolean',
2948+
'x-example': false
2949+
}
2950+
}
2951+
]
2952+
2953+
const expected = [
2954+
{
2955+
key: 'UserId',
2956+
value: new Parameter({
2957+
key: 'userId',
2958+
name: 'userId',
2959+
in: 'queries',
2960+
uuid: 'UserId',
2961+
required: true,
2962+
type: 'integer',
2963+
examples: List([
2964+
23456
2965+
]),
2966+
constraints: List()
2967+
})
2968+
},
2969+
{
2970+
key: 'ShowThing',
2971+
value: new Parameter({
2972+
key: 'showThing',
2973+
name: 'showThing',
2974+
in: 'queries',
2975+
uuid: 'ShowThing',
2976+
required: false,
2977+
type: 'boolean',
2978+
examples: List([
2979+
false
2980+
]),
2981+
constraints: List()
2982+
})
2983+
}
2984+
]
2985+
2986+
const actual = inputs.map(input => __internals__.convertParameterObjectIntoParameter(input))
2987+
expect(actual).toEqual(expected)
2988+
})
29232989
})
29242990

29252991
describe('@convertParameterObjectArrayIntoParameterMap', () => {

0 commit comments

Comments
 (0)