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 등 여러 인코딩 사이에서 변환하세요.
XML 포매터
일관된 들여쓰기로 XML 문서를 정렬 출력하고, 정확한 줄 번호로 적격성 오류를 잡아냅니다.
HEX → ASCII 변환기
16진 바이트 시퀀스를 ASCII 텍스트로 변환합니다. 프로토콜 디버깅, 리버스 엔지니어링, CTF 챌린지에 좋습니다.
Protocol Buffers 디코더
hex, Base64, Base64URL, 텍스트 또는 파일의 Protobuf 와이어 형식 바이트를 브라우저에서 디코딩하고 정확한 필드 후보를 확인한 뒤 비공개 보고서로 내보냅니다.
이 도구는 다른 언어로도 제공됩니다
- Walidator OpenAPI [PL]
- Validator OpenAPI [ID]
- Validador de OpenAPI [ES]
- Validateur OpenAPI [FR]
- Trình kiểm tra OpenAPI [VI]
- OpenAPI 検証ツール [JA]
- OpenAPI-validerare [SV]
- OpenAPI-validator [NL]
- ตัวตรวจสอบ OpenAPI [TH]
- مدقّق OpenAPI [AR]
- OpenAPI-Validator [DE]
- Validador OpenAPI [PT]
- OpenAPI Validator [EN]
- Validatore OpenAPI [IT]
- Валидатор OpenAPI [RU]
- OpenAPI Doğrulayıcı [TR]
- OpenAPI 验证器 [ZH]