Skip to content

Commit 7b1c297

Browse files
feature: exploded parameter semantic equivalence (#744)
1 parent dcbfdc7 commit 7b1c297

10 files changed

+577
-17
lines changed

data/explode-params/base.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Test API
4+
version: 1.0.0
5+
paths:
6+
/test:
7+
get:
8+
parameters:
9+
- name: PageNumber
10+
in: query
11+
schema:
12+
type: integer
13+
- name: PageSize
14+
in: query
15+
schema:
16+
type: integer
17+
responses:
18+
'200':
19+
description: OK
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Test API
4+
version: 1.0.0
5+
paths:
6+
/test:
7+
get:
8+
parameters:
9+
- name: userId
10+
in: cookie
11+
schema:
12+
type: string
13+
responses:
14+
'200':
15+
description: OK
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Test API
4+
version: 1.0.0
5+
paths:
6+
/test:
7+
get:
8+
parameters:
9+
- name: userParams
10+
in: query
11+
style: form
12+
explode: true
13+
schema:
14+
type: object
15+
properties:
16+
userId: # Same name as cookie param but in different location
17+
type: string
18+
responses:
19+
'200':
20+
description: OK

data/explode-params/exploded.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Test API
4+
version: 1.0.0
5+
paths:
6+
/test:
7+
get:
8+
parameters:
9+
- name: PageParams
10+
in: query
11+
style: form
12+
explode: true
13+
schema:
14+
type: object
15+
properties:
16+
PageNumber:
17+
type: integer
18+
PageSize:
19+
type: integer
20+
responses:
21+
'200':
22+
description: OK
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Test API
4+
version: 1.0.0
5+
paths:
6+
/test:
7+
get:
8+
parameters:
9+
- name: PageNumber
10+
in: query
11+
schema:
12+
type: integer
13+
- name: PageSize
14+
in: query
15+
schema:
16+
type: integer
17+
- name: SortBy
18+
in: query
19+
schema:
20+
type: string
21+
- name: Order
22+
in: query
23+
schema:
24+
type: string
25+
enum: [asc, desc]
26+
responses:
27+
'200':
28+
description: OK
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Test API
4+
version: 1.0.0
5+
paths:
6+
/test:
7+
get:
8+
parameters:
9+
# PageNumber and PageSize converted to exploded object
10+
- name: PageParams
11+
in: query
12+
style: form
13+
explode: true
14+
schema:
15+
type: object
16+
properties:
17+
PageNumber:
18+
type: integer
19+
PageSize:
20+
type: integer
21+
# SortBy and Order kept as simple parameters
22+
- name: SortBy
23+
in: query
24+
schema:
25+
type: string
26+
- name: Order
27+
in: query
28+
schema:
29+
type: string
30+
enum: [asc, desc]
31+
responses:
32+
'200':
33+
description: OK
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Test API
4+
version: 1.0.0
5+
paths:
6+
/test/{pathParam}:
7+
get:
8+
parameters:
9+
- name: pathParam
10+
in: path
11+
required: true
12+
# No explicit style - should default to "simple", not "form"
13+
explode: false
14+
schema:
15+
type: object
16+
properties:
17+
PageNumber:
18+
type: integer
19+
PageSize:
20+
type: integer
21+
responses:
22+
'200':
23+
description: OK

0 commit comments

Comments
 (0)