사용하지 않는 요청 본문 컴포넌트 (OpenAPI 3.0)

공통 요청 본문 정의가 API 작업과 연결되지 않은 경우

설명

components.requestBodies에 정의한 본문은 작업의 requestBody에서 참조해 사용합니다. 공통 정의만으로 해당 작업이 본문을 받는 것으로 문서화되지는 않습니다.

잠재적 영향

작업의 입력 형식과 공통 정의의 관계가 불명확해지고 변경 시 불필요한 검토가 늘어날 수 있습니다.

해결 방법

본문을 받는 작업에서 필요한 정의를 참조하고 콘텐츠 유형과 스키마를 실제 요청에 맞추세요. 외부 문서에서도 사용하지 않는 불필요한 정의만 제거하세요.

예시

다음 POST 예시는 작업의 requestBody에서 MyObjectBody를 참조합니다.

변경 전

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "post": {
        "operationId": "listVersionsv2",
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MyObject"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "MyObject": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      }
    },
    "requestBodies": {
      "MyObjectBody": {
        "description": "A JSON object containing my object information",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MyObject"
            }
          }
        }
      }
    }
  }
}

변경 후

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "post": {
        "operationId": "listVersionsv2",
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MyObject"
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/MyObjectBody"
        }
      }
    }
  },
  "components": {
    "schemas": {
      "MyObject": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      }
    },
    "requestBodies": {
      "MyObjectBody": {
        "description": "A JSON object containing my object information",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MyObject"
            }
          }
        }
      }
    }
  }
}

참조