api

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewHTTPServer added in v1.0.1

func NewHTTPServer(cfg HTTPServerConfig) *echo.Echo

NewHTTPServer 설정된 미들웨어를 포함한 Echo 인스턴스를 생성합니다.

미들웨어는 다음 순서로 적용됩니다 (순서가 중요합니다):

  1. PanicRecovery - 패닉 복구 및 로깅 - 핸들러에서 발생한 panic을 복구하여 서버 다운 방지 - 스택 트레이스와 함께 에러를 로깅 - 가장 먼저 적용되어야 다른 미들웨어의 panic도 복구 가능

  2. RequestID - 요청 ID 생성 - 각 요청에 고유한 ID를 부여 (X-Request-ID 헤더) - 로깅 및 디버깅 시 요청 추적에 사용 - 로깅 미들웨어보다 먼저 적용되어야 로그에 request_id 포함 가능

  3. HTTPLogger - HTTP 요청/응답 로깅 - 모든 HTTP 요청과 응답 정보를 구조화된 로그로 기록 - 민감 정보(app_key, password 등)는 자동으로 마스킹 - 요청 처리 시간, 상태 코드, IP 주소 등 기록

  4. CORS - Cross-Origin Resource Sharing - 허용된 Origin에서의 크로스 도메인 요청 처리 - Preflight 요청(OPTIONS) 자동 응답 - 프로덕션 환경에서는 특정 도메인만 허용 권장

  5. Secure - 보안 헤더 설정 - X-XSS-Protection, X-Content-Type-Options 등 보안 헤더 자동 추가 - XSS, 클릭재킹 등의 공격 방어 - 가장 마지막에 적용되어 모든 응답에 보안 헤더 추가

라우트 설정은 포함되지 않으며, 반환된 Echo 인스턴스에 별도로 설정해야 합니다.

func SetupRoutes added in v1.0.1

func SetupRoutes(e *echo.Echo, h *handler.SystemHandler)

SetupRoutes 시스템 전반에 적용되는 공통 라우트를 설정합니다.

포함되는 라우트:

  • System 엔드포인트: /health, /version (인증 불필요)
  • Swagger UI: /swagger/*
  • 커스텀 HTTP 에러 핸들러 (404, 500 등)

Types

type HTTPServerConfig added in v1.0.1

type HTTPServerConfig struct {
	// Debug는 Echo의 디버그 모드 활성화 여부를 설정합니다.
	Debug bool
	// AllowOrigins는 CORS에서 허용할 Origin 목록을 설정합니다.
	// 프로덕션 환경에서는 특정 도메인만 허용하도록 설정해야 합니다.
	AllowOrigins []string
}

HTTPServerConfig 서버 생성 시 필요한 설정을 정의합니다.

type Service added in v1.0.1

type Service struct {
	// contains filtered or unexported fields
}

Service Notify API 서버의 생명주기를 관리하는 서비스입니다.

이 서비스는 다음과 같은 역할을 수행합니다:

  • Echo 기반 HTTP/HTTPS 서버 시작 및 종료
  • API 엔드포인트 라우팅 설정 (Health Check, Version, 알림 메시지 전송 등)
  • Swagger UI 제공
  • 서비스 상태 관리 (시작/중지)
  • Graceful Shutdown 지원 (5초 타임아웃)

서비스는 고루틴으로 실행되며, context를 통해 종료 신호를 받습니다. Start() 메서드로 시작하고, context 취소로 종료됩니다.

func NewService added in v1.0.1

func NewService(appConfig *config.AppConfig, notificationSender notification.Sender, buildInfo common.BuildInfo) *Service

NewService Service 인스턴스를 생성합니다.

Returns:

  • 초기화된 Service 인스턴스

func (*Service) Start added in v1.0.1

func (s *Service) Start(serviceStopCtx context.Context, serviceStopWG *sync.WaitGroup) error

Start API 서비스를 시작합니다.

서비스는 별도의 고루틴에서 실행되며, 다음 작업을 수행합니다:

  1. Echo 서버 설정 (미들웨어, 라우트)
  2. HTTP/HTTPS 서버 시작
  3. Shutdown 신호 대기
  4. Graceful Shutdown 처리

Parameters:

  • serviceStopCtx: 종료 신호를 받기 위한 Context (cancel 호출 시 종료)
  • serviceStopWG: 서비스 종료 대기를 위한 WaitGroup

Returns:

  • error: notificationService가 nil이거나 이미 실행 중인 경우 에러 반환

Note: 이 함수는 즉시 반환되며, 실제 서버는 고루틴에서 실행됩니다.

Directories

Path Synopsis
Package middleware HTTP 요청/응답 로깅을 위한 미들웨어를 제공합니다.
Package middleware HTTP 요청/응답 로깅을 위한 미들웨어를 제공합니다.
model
v1
Package v1 API v1 버전의 라우트를 정의합니다.
Package v1 API v1 버전의 라우트를 정의합니다.
handler
Package handler v1 API의 HTTP 요청 핸들러를 제공합니다.
Package handler v1 API의 HTTP 요청 핸들러를 제공합니다.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL