스키마 외부 문서 URL 점검

데이터 모델의 추가 설명을 올바른 문서에 연결하세요.

설명

스키마의 externalDocs.url은 데이터 모델의 의미나 제약 조건을 설명하는 별도 문서를 연결합니다. 링크가 잘못되면 보충 정보를 확인하기 어렵습니다. OpenAPI 3.0의 상대 URL은 서버 URL을 기준으로 해석할 수 있습니다.

잠재적 영향

API 사용자가 필드의 업무 의미나 세부 제약을 놓쳐 데이터 처리와 연동에 오류가 생길 수 있습니다.

해결 방법

해당 스키마의 실제 설명 문서를 연결하고 주소와 내용을 확인하세요. 상대 링크는 기준 서버 주소에서 의도한 대상으로 해석되는지 확인하며, 별도 문서 사이트에는 명시적 URL을 사용할 수 있습니다.

예시

OpenAPI 3.0의 User 스키마에 상대 경로 /을 둔 경우와 문서 주소를 명시한 경우입니다. 상대 경로라는 이유만으로 잘못된 링크는 아닙니다.

변경 전

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0",
    "contact": {
      "name": "contact",
      "url": "https://www.google.com/",
      "email": "user@gmail.com"
    }
  },
  "paths": {
    "/": {
      "get": {
        "operationId": "listVersionsv2",
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "examples": {
                  "foo": {
                    "value": {
                      "versions": [
                        {
                          "status": "CURRENT",
                          "updated": "2011-01-21T11:33:21Z",
                          "id": "v2.0",
                          "links": [
                            {
                              "href": "http://127.0.0.1:8774/v2/",
                              "rel": "self"
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "externalDocs": {
          "url": "/"
        }
      }
    }
  }
}

변경 후

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0",
    "contact": {
      "name": "contact",
      "url": "https://www.google.com/",
      "email": "user@gmail.com"
    }
  },
  "paths": {
    "/": {
      "get": {
        "operationId": "listVersionsv2",
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "examples": {
                  "foo": {
                    "value": {
                      "versions": [
                        {
                          "status": "CURRENT",
                          "updated": "2011-01-21T11:33:21Z",
                          "id": "v2.0",
                          "links": [
                            {
                              "href": "http://127.0.0.1:8774/v2/",
                              "rel": "self"
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "externalDocs": {
          "url": "http://docs.my-api.com/store-orders.htm"
        }
      }
    }
  }
}

변경 후 주소가 User 모델의 실제 설명을 제공하는지 확인해야 합니다. externalDocs 링크를 바꾸어도 스키마의 검증 제약 자체가 바뀌지는 않습니다.

참조