OpenAPI 검증기
OpenAPI 또는 Swagger 문서를 JSON이나 YAML로 붙여넣으면 이 검증기가 핵심 구조를 점검합니다. 문서가 파싱되는지, openapi 또는 swagger 버전 필드가 있는지, 제목과 버전을 담은 info 객체가 있는지, paths 객체가 있는지 확인한 다음, 슬래시로 시작하지 않는 path와 알 수 없는 HTTP 메서드를 표시합니다. 이것은 전체 JSON Schema 검증기가 아니라 빠른 구조 점검입니다.
검증은 어떻게 진행되나
-
1
문서를 붙여넣기
OpenAPI 2(Swagger) 또는 OpenAPI 3용 JSON 또는 YAML.
-
2
문서 파싱
검증기는 문서를 JSON으로 파싱하고, 실패하면 YAML 파싱으로 되돌아갑니다.
-
3
필수 필드 확인
`openapi` 또는 `swagger` 버전 필드, `title`과 `version`을 담은 `info` 객체, 그리고 `paths` 객체가 있는지 확인합니다.
-
4
path 스캔
각 path에 앞 슬래시가 있는지 확인하고, 각 operation 키를 알려진 HTTP 메서드와 대조합니다.
-
5
보고서 읽기
오류는 유효성을 막고, 경고는 앞 슬래시가 없는 path와 알 수 없는 메서드를 짚어 줍니다.
이 검증기가 점검하는 것
| 점검 항목 | 실패 시 결과 |
|---|---|
| 문서가 JSON 또는 YAML로 파싱됨 | 오류 |
openapi 또는 swagger 필드 존재 |
오류 |
info 객체 존재 |
오류 |
info.title 존재 |
오류 |
info.version 존재 |
오류 |
paths 객체 존재 |
오류 |
각 path가 /로 시작 |
경고 |
| operation 키가 알려진 HTTP 메서드 | 경고 |
모든 오류를 통과한 문서는 구조적으로 유효하다고 보고됩니다. 경고는 유효성을 막지 않으며, 고칠 가치가 있는 부분을 짚어 줍니다.
이 검증기가 점검하지 않는 것
이것은 구조 점검이지, 전체 사양 검증기가 아닙니다. 이 검증기는 다음을 하지 않습니다:
- 사용 중인 버전의 공식 JSON Schema에 대해 모든 노드를 검증하지 않습니다;
$ref참조를 해석하거나 그것이 가리키는 컴포넌트가 존재하는지 확인하지 않습니다;- path 매개변수가 일관되게 선언되고 사용되는지 확인하지 않습니다;
operationId값이 있는지 또는 고유한지 확인하지 않습니다;- 오류의 줄 번호를 보고하지 않습니다.
그런 수준이 필요하면 redocly lint, swagger-cli validate, spectral lint 같은 전용 CLI 검증기를 실행하세요. 이 도구는 사양을 커밋하거나 공유하기 전에 빠르게 점검하는 데 사용하세요.
실제로 쓰이는 OpenAPI 버전
| 버전 | 참고 |
|---|---|
| Swagger 2.0 | 여전히 널리 배포됨; swagger: "2.0" 사용 |
| OpenAPI 3.0.x | 가장 일반적인 3.x 계열 |
| OpenAPI 3.1.0 | JSON Schema 2020-12과 정렬됨 |
이 검증기는 openapi 필드(3.x)나 swagger 필드(2.0) 중 하나를 받아들이므로, 이 모두가 버전 확인을 통과합니다.
통과하는 최소 문서
openapi: 3.0.3
info:
title: Example API
version: 1.0.0
paths:
/users:
get:
summary: List users
모든 필수 필드가 존재하고, 하나뿐인 path가 슬래시로 시작하며, get이 알려진 메서드이므로 이 문서는 구조적으로 유효하다고 보고됩니다.
자주 묻는 질문
Swagger는 이 사양의 원래 이름으로, 2015년 리눅스 재단에 기증되었고 버전 3.0부터 “OpenAPI”로 이름이 바뀌었습니다. 현재 “Swagger”는 도구(Swagger UI, Swagger Editor)를 가리킵니다. 사양 자체는 OpenAPI입니다. 이 검증기는 swagger(2.0)와 openapi(3.x) 버전 필드를 모두 받아들입니다.
아니요. 핵심 구조를 점검합니다: 문서가 파싱되는지, 버전 필드와 제목·버전을 담은 info 객체, 그리고 paths 객체가 있는지 확인하고, 앞 슬래시가 없는 path와 알 수 없는 메서드를 경고합니다. 공식 JSON Schema에 대해 모든 노드를 검증하지는 않습니다. 그 용도로는 redocly lint나 spectral lint를 사용하세요.
아니요. $ref 참조를 따라가거나 그것이 가리키는 컴포넌트가 존재하는지 확인하지 않습니다. 파일 간 참조는 redocly bundle이나 swagger-cli bundle 같은 도구로 문서를 먼저 번들링한 다음 전체 검증기를 실행하세요.
아니요. 붙여넣은 문서만 검사하며, 실행 중인 코드는 검사하지 않습니다. 여러분의 API가 사양이 설명한 대로 실제로 반환하는지는 알 수 없습니다. Dredd나 Schemathesis 같은 계약 테스트 도구가 그 일을 합니다.
관련 도구
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
Webpack 설정 생성기
순수 JavaScript, React, Vue용 webpack 5 webpack.config.js를 만드세요. TypeScript, Babel, CSS 또는 Sass, 이미지, HtmlWebpackPlugin, 개발 서버, npm install 명령까지 함께 제공합니다.
텍스트 파일 인코딩 변환기
깨진 문자를 고치기 위해 텍스트를 UTF-8, UTF-16, Latin-1, Windows-1252 등 여러 인코딩 사이에서 변환하세요.
HEX → ASCII 변환기
16진 바이트 시퀀스를 ASCII 텍스트로 변환합니다. 프로토콜 디버깅, 리버스 엔지니어링, CTF 챌린지에 좋습니다.
XML 포매터
일관된 들여쓰기로 XML 문서를 정렬 출력하고, 정확한 줄 번호로 적격성 오류를 잡아냅니다.
Protocol Buffers 디코더
hex, Base64, Base64URL, 텍스트 또는 파일의 Protobuf 와이어 형식 바이트를 브라우저에서 디코딩하고 정확한 필드 후보를 확인한 뒤 비공개 보고서로 내보냅니다.
이 도구는 다른 언어로도 제공됩니다
- Validator OpenAPI [ID]
- مدقّق OpenAPI [AR]
- Validador de OpenAPI [ES]
- OpenAPI-Validator [DE]
- Trình kiểm tra OpenAPI [VI]
- OpenAPI 検証ツール [JA]
- OpenAPI-validerare [SV]
- OpenAPI-validator [NL]
- Validador OpenAPI [PT]
- Validateur OpenAPI [FR]
- Walidator OpenAPI [PL]
- ตัวตรวจสอบ OpenAPI [TH]
- OpenAPI Doğrulayıcı [TR]
- OpenAPI 验证器 [ZH]
- OpenAPI Validator [EN]
- Validatore OpenAPI [IT]
- Валидатор OpenAPI [RU]