Developer
Thử API trong Playground ↗

Analytics / Thống kê API

✧ Mở bằng AI

Sao chép tài liệu, mở AI rồi dán vào cuộc trò chuyện.

ChatGPTClaudePerplexityGrok
≡ Xem Markdown

Dùng Authorization: Bearer <ACCESS_TOKEN> lấy từ API xác thực.

Response Production và UAT hiện chưa đồng nhất. Các ví dụ Production dưới đây đối chiếu MetricsController ngày 11/10/2026, giá trị là minh họa; chưa gọi Production. Mẫu UAT ở cuối trang đã gọi trực tiếp. Không dùng mẫu UAT để suy ra schema Production.

Các API dưới đây dùng GET, tham số ở query string, không gửi JSON body.

Lịch sử cuộc gọi API

GET /v1/metrics/calls

page (mặc định 1), limit (1–100, mặc định 25), path, status, method. Production lọc path theo chuỗi con; UAT đối chiếu path chính xác.

Response Production:

{
  "success": true,
  "data": {
    "items": [
      {
        "id": 1,
        "request_id": "REQUEST_DEMO",
        "method": "GET",
        "path": "/v1/banks",
        "status_code": 200,
        "response_ms": 35,
        "ip": "203.0.113.10",
        "user_agent": "Merchant backend",
        "created_at": "2026-10-11 12:00:00"
      }
    ],
    "page": 1,
    "limit": 25,
    "total": 1
  }
}

Nhật ký API

GET /v1/metrics/logs

page, limit. Production trả data.logs; UAT trả data.items và hỗ trợ thêm bộ lọc như calls.

Response Production:

{
  "success": true,
  "data": {
    "total": 1,
    "page": 1,
    "limit": 25,
    "logs": [
      {
        "id": 1,
        "request_id": "REQUEST_DEMO",
        "method": "GET",
        "path": "/v1/banks",
        "status_code": 200,
        "response_ms": 35,
        "ip": "203.0.113.10",
        "created_at": "2026-10-11 12:00:00"
      }
    ]
  }
}

Thống kê theo endpoint

GET /v1/metrics/endpoints

Không có tham số bắt buộc. Production trả path/count/errors; UAT nhóm theo method/path, trả total/avg_ms.

Response Production:

{
  "success": true,
  "data": [
    {
      "path": "/v1/banks",
      "count": 12,
      "errors": 1
    }
  ]
}

Thống kê theo kỳ

GET /v1/metrics/period

type: day (mặc định), week, month. Không dùng range=daily. UAT chưa hỗ trợ, Playground mô phỏng. period là ngày hoặc số tuần/tháng theo loại đã chọn.

Response Production:

{
  "success": true,
  "data": {
    "type": "day",
    "periods": [
      {
        "period": "2026-10-11",
        "total": 12,
        "errors": 1,
        "avg_response_ms": "35.0000"
      }
    ]
  }
}

Thống kê mã HTTP

GET /v1/metrics/status

Không có tham số bắt buộc. Production trả status_code/count; UAT trả status_code/total/avg_ms. Đây là thống kê mã HTTP, không phải health check.

Response Production:

{
  "success": true,
  "data": [
    {
      "status_code": 200,
      "count": 12
    }
  ]
}

Request và response đối chiếu ngày 11/10/2026

Các mẫu dưới đây giữ cấu trúc trường và kiểu dữ liệu. Khóa, chữ ký, URL phiên đã được thay bằng placeholder; danh sách chỉ giữ tối đa hai phần tử và dữ liệu ảnh/PDF/XML dài được rút gọn. Không sao chép placeholder để gọi API thật.

Analytics · calls

Đã gọi API demo/UAT.

GET /v1/metrics/calls

Tham số path/query (không gửi JSON body):

{
  "page": 1,
  "limit": 25
}

HTTP 200. Response:

{
  "success": true,
  "data": {
    "items": [
      {
        "id": 96,
        "application_id": 2,
        "method": "POST",
        "path": "/v1/banks/21/delete-confirm",
        "status_code": 200,
        "response_ms": 123,
        "created_at": "2026-10-10 19:19:35"
      },
      {
        "id": 95,
        "application_id": 2,
        "method": "DELETE",
        "path": "/v1/banks/21",
        "status_code": 200,
        "response_ms": 142,
        "created_at": "2026-10-10 19:19:35"
      }
    ],
    "page": 1,
    "limit": 25,
    "total": 92
  }
}

Analytics · endpoints

Đã gọi API demo/UAT.

GET /v1/metrics/endpoints

Tham số path/query (không gửi JSON body):

{}

HTTP 200. Response:

{
  "success": true,
  "data": [
    {
      "method": "POST",
      "path": "/v1/banks",
      "total": 5,
      "avg_ms": "142"
    },
    {
      "method": "POST",
      "path": "/v1/banks/confirm-otp",
      "total": 11,
      "avg_ms": "126"
    }
  ]
}

Analytics · period

Đối chiếu mã nguồn backend; giá trị minh họa. Theo MetricsController.php. UAT trả 501; Playground mô phỏng đúng cấu trúc Production.

GET /v1/metrics/period

Tham số path/query (không gửi JSON body):

{
  "type": "day"
}

HTTP 200. Response:

{
  "success": true,
  "data": {
    "type": "day",
    "periods": [
      {
        "period": "2026-10-11",
        "total": 12,
        "errors": 1,
        "avg_response_ms": "35.0000"
      }
    ]
  }
}

Analytics · status

Đã gọi API demo/UAT.

GET /v1/metrics/status

Tham số path/query (không gửi JSON body):

{}

HTTP 200. Response:

{
  "success": true,
  "data": [
    {
      "status_code": 409,
      "total": 1,
      "avg_ms": "131"
    },
    {
      "status_code": 200,
      "total": 78,
      "avg_ms": "134"
    }
  ]
}

Analytics · logs

Đã gọi API demo/UAT.

GET /v1/metrics/logs

Tham số path/query (không gửi JSON body):

{
  "page": 1,
  "limit": 25
}

HTTP 200. Response:

{
  "success": true,
  "data": {
    "items": [
      {
        "id": 96,
        "application_id": 2,
        "method": "POST",
        "path": "/v1/banks/21/delete-confirm",
        "status_code": 200,
        "response_ms": 123,
        "created_at": "2026-10-10 19:19:35"
      },
      {
        "id": 95,
        "application_id": 2,
        "method": "DELETE",
        "path": "/v1/banks/21",
        "status_code": 200,
        "response_ms": 142,
        "created_at": "2026-10-10 19:19:35"
      }
    ],
    "page": 1,
    "limit": 25,
    "total": 92
  }
}
Tìm trong 57 trang tài liệu · Esc để đóng