목록 보기
RESTful API validation 자동화 하기
백엔드

RESTful API validation 자동화 하기

야놀자클라우드
야놀자클라우드
2022년 1월 11일

두줄요약

TypeScript 인터페이스 주석에서 JSONSchema를 생성해 ajv 검증과 API 문서화를 자동화했습니다. Fastify, Swagger, TypeDoc 연동의 장점과 버전·표현력 제약을 함께 설명합니다.

문제 상황

  • 엄격한 RESTful API 입력값 검증에 따른 개발 비용 증가와 느슨한 검증에 따른 장애 위험
  • 검증 스키마, Swagger 문서, TypeDoc 문서의 개별 관리로 인한 최신화 부담

구조와 흐름

  • TypeScript Request 인터페이스의 JSDoc 주석과 제약 조건을 JSONSchema로 변환
  • 생성된 JSONSchema를 ajv 및 fastify.js 라우트에 등록해 요청 검증 수행
  • fastify-swagger와 TypeDoc으로 API·인터페이스 문서 자동 생성

선택 이유

  • 단일 인터페이스 정의를 검증과 문서화의 공통 원천으로 활용
  • JSONSchema 등록만으로 Swagger.io 문서 최신 상태 유지
  • Jenkins 배포 과정에서 생성 문서를 S3에 업로드하는 운영 방식

주의할 점

  • JSONSchema, ajv, fastify.js 간 연동과 definition 관리에 필요한 학습 비용
  • JSONSchema·ajv 버전 변화와 fastify.js 호환성 제약
  • ts-json-schema-generator의 mapped access 변환 오류 및 JSONSchema의 커스텀 검증 한계

다음 읽기

#TypeScript 주제를 다룬 다른 회사 글

TypeScript 쓰면서 OpenAPI Generator 는 안 쓴다고?

Swagger와 OpenAPI Generator로 REST API 명세 기반 TypeScript 타입 자동 생성을 소개했습니다. API 변경 추적과 프론트엔드·백엔드 간 오사용 감소에 활용할 수 있습니다.

매드업
매드업
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...