Swagger? OAS? with NodeJS
What is Swagger?
스웨거(Swagger)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 대부분의 사용자들은 스웨거 UI 도구를 통해 스웨거를 식별하며 스웨거 툴셋에는 자동화된 문서화, 코드 생성, 테스트 케이스 생성 지원이 포함된다.
Swagger는 REST API를 설계, 빌드, 문서화 및 소비하는 데 도움이되는 OpenAPI 사양을 기반으로 구축 된 오픈 소스 도구 세트입니다.
Swagger 특징
-
API 디자인 Swagger-editor를 통해 api를 문서화하고 빠르게 명세할 수 있습니다.
-
API Development Swagger-codegen을 통해 작성된 문서를 통해 SDK를 생성하여 빌드 프로세스를 간소화 할 수 있도록 도와줍니다. 문서를 통해 실행하면 프로토 타입 코드를 생성해주는데 파일 구조가 정해져있는것 같습니다.
-
API Documentation Swagger-UI를 통해 작성된 API를 시각화시켜 줍니다.
-
API Testing Swagger-Inspector를 통해 API를 시각화 하고 빠른 테스팅을 진행할 수 있습니다.
-
Standardize Swagger-hub를 통해 개인, 팀원들이 API정보를 공유하는 Hub입니다. —
Swagger 2.0 VS OpenApi 3.0
사실은 OpenApi 2.0 (2014년 2.0 발의) 과 3.0(2017년 발의)
OPEN API Reversion
Swagger-node
Node.js에서 Swagger 호환 API를 디자인하고 빌드하기위한 도구를 제공합니다. Express, Hapi, Restify 및 Sails를 비롯하여 널리 사용되는 Node.js 서버와 모든 Connect 기반 미들웨어와 통합됩니다. swagger를 사용하면 랩톱에서 API를 처음부터 지정, 빌드 및 테스트 할 수 있습니다. 구현 논리를 다시 쓰지 않고도 디자인을 변경하고 반복 할 수 있습니다.
Swagger-node 특징
- Swagger 2.0 지원
- 오래되었음
- 5년 이상됨 (2015년 시작)
- 업데이트가 빈번하지 않음
- 2018년이 마지막 업뎃
- 1년 이상 51Scrum에서 사용됨
oas-tools
Express 서버에서 OpenAPI 3.0 사양으로 정의 된 RESTfull API 관리를 지원합니다.
Oas-tools 특징
- OpenApi 3.0 지원
- 최신 스펙을 제공
- 2018년 시작된 프로젝트
- 업데이트가 빈번함
- 2020년 7월 13일 기준 2020년 6월 18일이 마지막 업데이트
- 현재 1개의 프로젝트에서 사용됨 (issue_finder, new Collector)
사용해보기
Swagger-node
oas-generator
참고 자료
- https://ko.wikipedia.org/wiki/%EC%8A%A4%EC%9B%A8%EA%B1%B0_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
- https://real-dongsoo7.tistory.com/58
- Openapi 2.0 (2014년 2.0 발의)
- Openapi 3.0(2017년 발의)
- Swagger-node
- oas-tools
- oas-generator