최근 푸시 요청 조회
API Endpoint
GET /api/stats/recent-requests
최근 푸시 요청 로그를 조회합니다. 개별 푸시 요청의 상세 정보와 처리 결과를 실시간으로 확인할 수 있습니다.
GET /api/stats/recent-requests?limit=50
X-API-Key: <서비스-API-키>
Origin: <등록된-도메인>
X-API-Key: <서비스-API-키>
Origin: <등록된-도메인>
Parameters
limit
조회할 요청 로그의 개수입니다. 최근 N개의 요청을 조회하며, 기본값은 50개입니다. 최대 500개까지 조회 가능합니다.
Discussion
이 엔드포인트는 최근 푸시 요청들의 상세한 로그 정보를 제공합니다. 각 요청의 처리 시간, 성공/실패 현황, 에러 상세 정보, 페이로드 크기 등을 확인할 수 있어 실시간 모니터링과 디버깅에 유용합니다. 로그는 요청 시간 역순으로 정렬되어 최신 요청부터 확인할 수 있습니다.
데이터 보관: 최근 90일간의 로그만 보관
최대 조회: 한 번에 최대 500개 요청
인증: 유효한 X-API-Key 헤더와 Origin 검증 필요
최대 조회: 한 번에 최대 500개 요청
인증: 유효한 X-API-Key 헤더와 Origin 검증 필요
응답 형식
성공 응답 (200 OK)
{
"success": true,
"data": {
"requests": [
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"subscription_count": 25,
"success_count": 23,
"fail_count": 2,
"payload_size": 256,
"processing_time_ms": 1250,
"error_details": {
"expired": 1,
"client_error": 1
},
"created_at": "2024-01-31T15:30:45.123Z"
},
{
"request_id": "550e8400-e29b-41d4-a716-446655440001",
"subscription_count": 1,
"success_count": 1,
"fail_count": 0,
"payload_size": 180,
"processing_time_ms": 320,
"error_details": null,
"created_at": "2024-01-31T14:25:12.456Z"
}
// ... 추가 요청 로그
],
"service": {
"siteName": "내 웹사이트",
"apiKey": "your-api-key"
},
"limit": 50
}
}
"success": true,
"data": {
"requests": [
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"subscription_count": 25,
"success_count": 23,
"fail_count": 2,
"payload_size": 256,
"processing_time_ms": 1250,
"error_details": {
"expired": 1,
"client_error": 1
},
"created_at": "2024-01-31T15:30:45.123Z"
},
{
"request_id": "550e8400-e29b-41d4-a716-446655440001",
"subscription_count": 1,
"success_count": 1,
"fail_count": 0,
"payload_size": 180,
"processing_time_ms": 320,
"error_details": null,
"created_at": "2024-01-31T14:25:12.456Z"
}
// ... 추가 요청 로그
],
"service": {
"siteName": "내 웹사이트",
"apiKey": "your-api-key"
},
"limit": 50
}
}
사용 예시
// 최근 100개 요청 로그 조회
const response = await fetch('https://api.pushmanager.kr/api/stats/recent-requests?limit=100', {
headers: {
'X-API-Key': 'your-api-key-here'
}
});
const { data } = await response.json();
// 실패한 요청들만 필터링
const failedRequests = data.requests.filter(req => req.fail_count > 0);
console.log(`실패한 요청: ${failedRequests.length}개`);
// 평균 처리 시간 계산
const avgProcessingTime = data.requests.reduce((sum, req) => sum + req.processing_time_ms, 0) / data.requests.length;
console.log(`평균 처리 시간: ${avgProcessingTime.toFixed(1)}ms`);
const response = await fetch('https://api.pushmanager.kr/api/stats/recent-requests?limit=100', {
headers: {
'X-API-Key': 'your-api-key-here'
}
});
const { data } = await response.json();
// 실패한 요청들만 필터링
const failedRequests = data.requests.filter(req => req.fail_count > 0);
console.log(`실패한 요청: ${failedRequests.length}개`);
// 평균 처리 시간 계산
const avgProcessingTime = data.requests.reduce((sum, req) => sum + req.processing_time_ms, 0) / data.requests.length;
console.log(`평균 처리 시간: ${avgProcessingTime.toFixed(1)}ms`);