-
-
Notifications
You must be signed in to change notification settings - Fork 547
Closed
Description
Hey, I'm trying to generate a GET request with a complex query object. I've made a test route.
"/booking/test":{
"get": {
"operationId": "testing",
"parameters": [
{
"name": "name",
"in": "query",
"required": true,
"schema": {
"type": "string",
},
},
{
"name": "employees",
"in": "query",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Person",
},
},
},
],
"responses": {
"200": {
"description": "",
},
},
"tags": ["booking"],
},
}
"Responsibility": {
"type": "object",
"properties": {
"name": {
"type": "string",
},
"priority": {
"type": "number",
},
"manager": {
"type": "string",
"nullable": true,
},
},
"required": ["name", "priority", "manager"],
},
"Person": {
"type": "object",
"properties": {
"name": {
"type": "string",
},
"location": {
"type": "string",
},
"responsiblity": {
"$ref": "#/components/schemas/Responsibility",
},
},
"required": ["name", "location", "responsiblity"],
},
"CompanyDto": {
"type": "object",
"properties": {
"name": {
"type": "string",
},
"employees": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Person",
},
},
},
"required": ["name", "employees"],
}
The generated types are perfect, I can make a request as follows.
BookingService.testing('yooo', [
{
name: 'Dave',
location: 'Las Vegas',
responsiblity: {
name: 'Thing A',
priority: 1,
manager: 'Tom',
},
},
{
name: 'Jane',
location: 'New York',
responsiblity: {
name: 'Thing B',
priority: 9001,
manager: null,
},
},
])
http://localhost:9001/booking/test?name=yooo&employees%5Bname%5D=Dave&employees%5Blocation%5D=Las%20Vegas&employees%5Bresponsiblity%5D%5Bname%5D=Thing%20A&employees%5Bresponsiblity%5D%5Bpriority%5D=1&employees%5Bresponsiblity%5D%5Bmanager%5D=Tom&employees%5Bname%5D=Jane&employees%5Blocation%5D=New%20York&employees%5Bresponsiblity%5D%5Bname%5D=Thing%20B&employees%5Bresponsiblity%5D%5Bpriority%5D=9001
However what I'm getting on the server is
{
"name":"yooo",
"employees":{
"name":[
"Dave",
"Jane"
],
"location":[
"Las Vegas",
"New York"
],
"responsiblity":{
"name":[
"Thing A",
"Thing B"
],
"priority":[
"1",
"9001"
],
"manager":"Tom"
}
}
}I'm not sure if this is a bug from this library, a limitation for query parameters or incorrect parsing server-side. Please let me know what you think.
Metadata
Metadata
Assignees
Labels
No labels