설명
OpenAPI 2.0에서는 한 작업에 in: body 매개변수를 최대 하나만 정의할 수 있습니다. 여러 값을 본문으로 보내려면 하나의 본문 스키마에 포함해야 합니다.
잠재적 영향
문서 검증이나 코드 생성이 실패하고 클라이언트가 요청 본문을 잘못 구성할 수 있습니다.
해결 방법
본문에 필요한 값은 하나의 객체 스키마로 합치세요. 실제 API가 쿼리나 헤더로 받는 값만 해당 위치로 옮기고, 본문 매개변수와 formData를 함께 사용하지 마세요.
예시
다음 POST 예시는 본문 매개변수를 하나로 줄이고 pageCount를 정수 쿼리 매개변수로 정의합니다. 실제 API도 이 요청 형식을 지원해야 합니다.
변경 전
json
{
"swagger": "2.0",
"info": {
"title": "Simple API Overview",
"version": "1.0.0"
},
"paths": {
"/": {
"post": {
"parameters": [
{
"name": "limit",
"in": "body",
"description": "max records to return",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "limit2",
"in": "body",
"description": "max records to return",
"required": true,
"schema": {
"type": "string"
}
}
],
"operationId": "listVersionsv2",
"summary": "List API versions",
"responses": {
"200": {
"description": "200 response"
}
}
}
}
}
}
변경 후
json
{
"swagger": "2.0",
"info": {
"title": "Simple API Overview",
"version": "1.0.0"
},
"paths": {
"/": {
"post": {
"parameters": [
{
"name": "limit",
"in": "body",
"description": "max records to return",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "pageCount",
"in": "query",
"description": "records per page",
"required": true,
"type": "integer"
}
],
"operationId": "listVersionsv2",
"summary": "List API versions",
"responses": {
"200": {
"description": "200 response"
}
}
}
}
}
}