단일 푸시 발송

작성자: admin 작성일: 2025-07-08 수정일: 2025-07-08
API Endpoint

POST /api/push/single

단일 구독자에게 푸시 알림을 발송합니다.
POST /api/push/single
Content-Type: application/json
X-API-Key: <서비스-API-키>
Origin: <등록된-도메인>

Parameters

subscription

대상 구독자의 푸시 서비스 엔드포인트와 암호화에 필요한 키들을 포함하는 구독 객체입니다. 브라우저의 PushManager.subscribe() 메서드로 생성된 표준 웹 푸시 구독 객체를 전달하면 됩니다. endpoint URL과 keys.p256dh, keys.auth가 필수로 포함되어야 합니다.

payload

사용자에게 표시될 알림의 내용을 정의하는 객체입니다. 웹 푸시 Notification API 규격을 따르며, 다양한 시각적 요소와 상호작용 옵션을 설정할 수 있습니다.
필수 속성:
  • title (String) - 알림 제목 (최대 100자)
  • body (String) - 알림 본문 (최대 300자)
선택 속성:
  • icon (String) - 알림 아이콘 URL
  • image (String) - 큰 이미지 URL
  • badge (String) - 배지 아이콘 URL
  • url (String) - 클릭 시 이동할 URL
  • tag (String) - 그룹핑용 태그 (최대 50자)
  • requireInteraction (Boolean) - 사용자 상호작용 필요 여부
  • silent (Boolean) - 무음 알림 여부
  • data (Object) - 사용자 정의 데이터
  • actions (Array) - 액션 버튼 배열 (최대 2개)

options

푸시 알림의 전송 방식과 우선순위를 제어하는 웹 푸시 표준 옵션들입니다. 모든 항목은 선택사항이며, 기본값으로도 정상 동작합니다.
  • TTL (Number) - 메시지 생존 시간(초), 0~2,419,200 (최대 4주)
  • urgency (String) - 우선순위: 'very-low', 'low', 'normal', 'high'
  • topic (String) - 메시지 분류용 토픽 (최대 32자)

Discussion

이 엔드포인트는 구독 정보와 페이로드의 유효성을 검사하고, 서비스의 VAPID 키를 사용하여 인증을 구성한 후 지정된 구독자에게 푸시 알림을 발송합니다. 발송 결과는 자동으로 서비스 통계에 기록되어 모니터링과 분석에 사용됩니다.
요청 제한: API 키당 분당 100회
페이로드 제한: 최대 4KB
인증: 유효한 X-API-Key 헤더와 Origin 검증 필요

응답 형식

성공 응답 (200 OK)

{
  "success": true,
  "message": "Push notification sent successfully",
  "data": {
    "sent": 1,
    "failed": 0,
    "statusCode": 201,
    "payloadSize": 256
  }
}

실패 응답 (푸시 발송 실패 시에도 200 응답)

{
  "success": false,
  "message": "Push notification failed",
  "data": {
    "sent": 0,
    "failed": 1,
    "error": "Invalid subscription",
    "statusCode": 410,
    "retryable": false,
    "expired": true
  }
}

에러 응답 (400/401/403/429/500)

{
  "success": false,
  "message": "Invalid subscription",
  "code": "INVALID_SUBSCRIPTION"
}

관련 API

다중 알림 발송

문서 검색