ASAPJS 문서
ASAPJS는 Express.js와 Sequelize ORM 위에 구축된 TypeScript 데코레이터 기반 REST API 프레임워크입니다. 라우팅, 데이터베이스 엔티티, 데이터 전송 객체를 위한 데코레이터를 사용하여 REST API를 깔끔하고 구조적인 방식으로 구축할 수 있으며, 보일러플레이트를 줄이면서도 코드베이스를 체계적이고 타입 안전하게 유지합니다.
ASAPJS의 핵심은 계층화된 아키텍처를 장려하는 것입니다. Controller는 들어오는 HTTP 요청을 처리하고, Application 클래스는 비즈니스 로직을 담당하며, Table 엔티티는 데이터베이스 스키마를 정의합니다. 각 계층은 경량 부트스트랩 프로세스를 통해 연결되며, Swagger 문서화부터 JWT 인증까지 모든 것이 프레임워크의 데코레이터에 의해 자동으로 처리됩니다.
패키지
ASAPJS는 모노레포로 구성되어 있습니다. 필요한 패키지만 설치하세요:
| 패키지 | 설명 |
|---|---|
@asapjs/core | 애플리케이션 부트스트랩, 설정, Winston 기반 JSON 로거 |
@asapjs/router | HTTP 라우팅 데코레이터 (@Get, @Post 등), Swagger 자동 생성, JWT 미들웨어 |
@asapjs/sequelize | Sequelize ORM 통합, @Table 데코레이터, TypeIs 타입 시스템, DTO |
@asapjs/error | 타입 안전 에러 팩토리 (error()) — Swagger 에러 스키마 자동 생성 |
@asapjs/schema | 스키마 레지스트리 및 플러그인 시스템 |
@asapjs/cli | CLI 도구 — asapjs new, dev, build, start, generate 명령 |
@asapjs/socket | 실시간 기능을 위한 Socket.io 통합 |
시작하기
빠른 시작 (5분)
가능한 빨리 작동하는 엔드포인트를 실행하고 싶다면, 시작하기 가이드로 바로 이동하세요:
전체 학습 경로
프레임워크의 설계와 기능에 대한 깊은 이해를 위해:
- 시작하기 — 설치, 첫 번째 API, 프로젝트 구조
- 핵심 개념 —
Application부트스트랩, 설정, 로거 - Router — 데코레이터, JWT 미들웨어, Swagger 통합
- Sequelize —
TypeIs타입 시스템, DTO, 테이블 엔티티 - Socket — 실시간 Socket.io 통합
예제
최소한의 ASAPJS 컨트롤러는 다음과 같습니다:
import { RouterController, Get, ExecuteArgs } from '@asapjs/router';
export default class UserController extends RouterController {
public tag = 'User';
public basePath = '/users';
constructor() {
super();
this.registerRoutes();
}
@Get('/me', {
title: 'Get current user',
auth: true,
response: UserInfoDto,
})
async getMe({ user }: ExecuteArgs) {
return { id: user.id, email: user.email };
}
}@Get 데코레이터는 Express 라우트와 Swagger 문서 항목을 동시에 등록합니다. auth: true 옵션은 핸들러가 실행되기 전에 JWT 토큰을 자동으로 검증합니다.
시작할 준비가 되셨나요? 설치부터 시작하세요.
Last updated on