개요
Open API Specification는 RESTful API를 정의하고 문서화하기 위한 표준 명세입니다.
이전에는 Swagger라고 불렸으며, API의 엔드포인트, 요청 매개변수, 응답 형식 등을 JSON 또는 YAML 형식으로 기술합니다.
핵심 특징
언어 독립적
JSON 또는 YAML 형식으로 작성되어 어떤 프로그래밍 언어와도 호환
표준화된 문서
API 엔드포인트, 요청/응답 형식, 인증 방법 등을 일관된 방식으로 기술
자동화 지원
문서 생성, 클라이언트 코드 생성, 서버 스텁 생성 등 자동화 가능
기본 구조
openapi: 3.0.0
info:
title: Sample API
description: API 설명
version: 0.1.9
servers:
- url: http://api.example.com/v1
description: 프로덕션 서버
paths:
/users:
get:
summary: 사용자 목록 반환
responses:
'200':
description: 사용자 이름 배열
content:
application/json:
schema:
type: array
items:
type: string
활용 사례
- 명확한 커뮤니케이션
- 팀 간, 회사 간 API 이해를 위한 공통 언어 제공
- 개발 생산성 향상
- 문서 자동화
- 테스트 자동화
- 도구 생태계
- Swagger UI, ReDoc 등 다양한 도구와 통합
더 공부해보면 좋을 주제
OpenAPI 3.0 vs 2.0(Swagger)
OpenAPI Typescript
https://tech.kakaopay.com/post/openapi-documentation/
https://docs.tosspayments.com/resources/glossary/oas
https://www.speakeasy.com/openapi
https://www.speakeasy.com/openapi/frameworks/springboot
https://www.udemy.com/course/swagger-tools-openapi/?couponCode=ST10MT30325G1
https://product.kyobobook.co.kr/detail/S000211655004