#HTTP 인그레스 & 라우팅

버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier-http 카테고리: 심층 분석


타입 안전하고 명시적인 HTTP 경계를 Router DSL로 구축합니다.

#Router DSL

  • 그룹화: 관련 라우트를 공유 접두사(예: /api/v1) 아래에 묶습니다.
  • 매크로: ranvier_router!를 사용하여 적은 보일러플레이트로 복잡한 라우팅 테이블을 정의합니다.
  • 합성: 중첩된 API 구조를 반영하도록 그룹을 중첩합니다.

#타입 안전 라우팅

  • 경로 파라미터: URI에서 변수를 추출(예: /user/:id)하고 지정한 타입으로 변환합니다.
  • 메서드 가드: 노드를 GET, POST, PUT, DELETE 등 특정 메서드로 제한합니다.
  • 명시적 흐름: 숨겨진 미들웨어 없이, 모든 변환이 표준 Axon 단계로 동작합니다.

#본문 처리

기능 설명
JsonBody<T> 타입 검증을 포함한 네이티브 JSON 요청/응답
Streaming 메모리에 전부 적재하지 않고 대용량 페이로드를 처리
SSE text/event-stream 기반 내장 EventSource 스트림 연결
Multipart 크기 제한을 적용한 multipart/form-data 파일 업로드 해석
Limits 라우트별 또는 전역 본문 크기 제한 설정

#빠른 시작

Ranvier::http()
  .bind("0.0.0.0:3000")
  .route("/", hello_axon)
  .route_group("/api/v1", |v1| {
      v1.route("/users", user_axon)
  })
  .run().await?;

#워크플로우

  1. API 로직을 위한 Schematic을 정의합니다.
  2. Axon을 URI와 HTTP 메서드에 바인딩합니다.
  3. 특정 그룹에 미들웨어 레이어(CORS, Auth)를 추가합니다.
  4. Path<T>로 경로 파라미터를 추출합니다.

#주요 타입

타입 설명
HttpIngress HTTP 서버 및 라우팅 테이블 구성을 위한 기본 빌더
RouteGroup 공유 접두사와 레이어로 라우트를 묶는 컨테이너
JsonBody<T> 타입 안전 JSON 추출 및 직렬화 래퍼
Path<T> 요청 URI에서 세그먼트를 추출하는 추출기
Multipart Multipart form-data 파일 업로드 추출기 (기능 게이트: multer)