서버 URL 변수 정의 누락

URL 템플릿에 사용한 모든 서버 변수의 기본값을 정의하세요.

설명

OpenAPI 3.0 서버 URL에 사용한 변수는 같은 서버 객체의 variables에 정의되어 있어야 합니다. 각 변수에는 대체 값이 제공되지 않을 때 사용할 문자열 default가 필요합니다.

잠재적 영향

치환 값이 정의되지 않으면 문서 도구나 클라이언트가 의도한 서버 주소를 만들지 못할 수 있습니다.

해결 방법

URL의 각 자리표시자와 같은 이름으로 변수를 정의하고 올바른 문자열 기본값을 제공하세요. 제한된 선택지가 있다면 enum을 검토하고, 기본값과 선택 값으로 완성한 URL을 확인하세요.

예시

서버 URL 변수에 초점을 맞춘 Link 발췌입니다. 대상 작업을 지정하는 operationId 또는 operationRef는 별도로 필요하며 여기서는 생략했습니다.

변경 전

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "the user being returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "uuid": {
                      "type": "string",
                      "format": "uuid"
                    }
                  }
                }
              }
            },
            "links": {
              "address": {
                "server": {
                  "url": "https://development.{server}.com/{base}"
                }
              }
            }
          }
        },
        "operationId": "listVersionsv2"
      }
    }
  }
}

변경 후

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "the user being returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "uuid": {
                      "type": "string",
                      "format": "uuid"
                    }
                  }
                }
              }
            },
            "links": {
              "address": {
                "server": {
                  "url": "https://development.{server}.com/{base}",
                  "variables": {
                    "base": {
                      "default": "v2"
                    },
                    "server": {
                      "default": "gigant-server"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "listVersionsv2"
      }
    }
  }
}

변경 전에는 server와 base의 치환 값이 없습니다. 변경 후 기본값을 사용하면 https://development.gigant-server.com/v2로 완성됩니다.

참조