External API Guide

公開 API 對接教學

API 供外部系統查詢平台狀態、來源、任務、最新執行結果,也能用模擬端點測試採集、解析、去重、合規與排程邏輯。

API 對接畫面

Base URL 與回應格式

Base URL: https://crawler.sun-bd.com

Response envelope:
{
  "success": true,
  "traceId": "00-...",
  "data": { },
  "warnings": []
}

會員驗證說明

本專案不提供本地會員登入或註冊。需要會員身份的管理端 API 必須使用集中會員 API 回傳的 access token;公開 API 教學端點則保留給對外展示與安全模擬。

常用端點

GET

/api/public/v1/health

取得平台健康狀態、store mode、索引前綴與資料庫連線摘要。

GET

/api/public/v1/catalog

列出可用 API、用途、方法與範例,適合對接前檢查。

GET

/api/public/v1/features

取得平台能力摘要,供產品頁或外部系統顯示。

GET

/api/public/v1/sources?tenantId=tenant-hq

查詢來源清單、URL、法務狀態、robots 狀態與排程摘要。

GET

/api/public/v1/jobs?tenantId=tenant-hq

查詢任務清單、頻率、啟用狀態、來源與解析規則。

GET

/api/public/v1/runs/latest?tenantId=tenant-hq

取得最新 Worker run 狀態,包含成功、失敗、HTTP 403、CAPTCHA 與品質資訊。

POST

/api/public/v1/crawl/simulate

執行採集 dry-run 模擬,回傳預估紀錄、警告與品質摘要。

POST

/api/public/v1/parser-rule/suggest

依 URL 或 sample HTML 建議 CSS selector 與 XPath。

POST

/api/public/v1/quality/dedupe

用 hash 與 similarity 檢查內容是否可能重複。

POST

/api/public/v1/compliance/robots-check

檢查 robots.txt 對指定 user-agent 是否允許抓取。

POST

/api/public/v1/scheduler/preview

依 cron 產生後續執行時間,方便確認排程頻率。

快速測試

curl https://crawler.sun-bd.com/api/public/v1/health

curl https://crawler.sun-bd.com/api/public/v1/catalog

curl "https://crawler.sun-bd.com/api/public/v1/sources?tenantId=tenant-hq"

curl -X POST https://crawler.sun-bd.com/api/public/v1/crawl/simulate \
  -H "Content-Type: application/json" \
  -d "{\"tenantId\":\"tenant-hq\",\"jobId\":\"job-news-demo\",\"maxRecords\":8}"

curl -X POST https://crawler.sun-bd.com/api/public/v1/quality/dedupe \
  -H "Content-Type: application/json" \
  -d "{\"tenantId\":\"tenant-hq\",\"title\":\"Demo title\",\"body\":\"Demo body\",\"existingBodies\":[\"Demo title Demo body\"]}"

OpenAPI-style 文件

工程團隊可讀取 `/api/public/v1/openapi.json` 取得端點摘要、參數、範例與測試 payload。正式串接時可再加上 API key、租戶授權或流量限制。

API 與網頁系統整合