Skip to Content

RouterPlugin

이 페이지에서 찾을 수 있는 것

심볼분류설명
RouterPluginClassExpress 라우팅, 미들웨어, Swagger를 초기화하는 ASAPJS 플러그인

개요

RouterPluginAsapJSPlugin 인터페이스를 구현하는 플러그인 클래스입니다. ASAPJS Application에 등록하면 Express 미들웨어 초기화, 컨트롤러 마운트, Swagger UI 설정, 헬스체크 엔드포인트 등록을 자동으로 수행합니다.

import { RouterPlugin } from '@asapjs/router';

클래스 정의

class RouterPlugin implements AsapJSPlugin { name: string; // '@asapjs/router' async init(config: AsapJSConfig, context: PluginContext): Promise<void>; }
멤버타입설명
namestring플러그인 식별자. '@asapjs/router'로 고정.
init(config, context)async (AsapJSConfig, PluginContext) => void플러그인 초기화 메서드. Application이 부트스트랩 시 호출합니다.

Application에 등록하는 방법

import { Application } from '@asapjs/core'; import { RouterPlugin } from '@asapjs/router'; const app = new Application({ name: 'My API', port: 3000, basePath: 'api', dirname: __dirname, extensions: ['@asapjs/sequelize'], swagger: { name: 'My API Documentation', version: '1.0.0', description: 'ASAPJS REST API', scheme: 'http', host: 'localhost:3000', }, }); app.use(new RouterPlugin()); app.run();

init() 동작 순서

init() 메서드가 호출되면 다음 순서로 초기화를 수행합니다:

1. 패키지 간 통합 설정

  • @asapjs/sequelize가 extensions에 포함되어 있으면, Swagger 함수(addScheme, generateSchemeRefWithName)를 sequelize 패키지에 주입합니다.
  • @asapjs/error가 extensions에 포함되어 있으면, addScheme 함수를 error 패키지에 주입합니다.

2. 미들웨어 초기화

다음 미들웨어를 Express 앱에 등록합니다:

  • cors() — CORS 허용
  • bodyParser.json({ limit: '200mb' }) — JSON 바디 파서
  • bodyParser.urlencoded({ limit: '200mb', extended: true }) — URL 인코딩 파서
  • trust proxy: true — 프록시 신뢰 설정
  • config.middleware — 사용자 정의 미들웨어 (설정에 있는 경우)

3. 라우트 마운트

config.dirnameroute.ts 파일에서 컨트롤러 배열을 로드하고, 각 컨트롤러의 basePathexpressRouter를 읽어 Express 앱에 마운트합니다.

4. 자동 엔드포인트 등록

엔드포인트조건설명
GET /{basePath}항상서버 동작 확인 메시지
GET /health-check항상DB 연결 상태 확인 (SELECT 1)
GET /{basePath}/sync@asapjs/sequelize 활성화 시DB 테이블 동기화
GET /{basePath}/docs/swagger-ui.html항상Swagger UI 인터페이스
GET /{basePath}/docs/swagger.json항상OpenAPI 3.0 JSON 스펙
GET /{basePath}/docs/generate-dbml@asapjs/sequelize 활성화 시DBML 스키마 생성

5. 에러 핸들러 등록

Express 미들웨어 체인 끝에 errorHandler를 등록합니다. Wrapper를 거치지 않는 에러를 처리합니다.

관련 항목

  • RouterController — 플러그인이 마운트하는 컨트롤러 클래스
  • Swagger — Swagger 자동 생성과 UI 설정
  • Bootstrap — Application과 플러그인 등록
Last updated on