JL
TH
หน้าเอกสาร
เมนู
คู่มือ

ส่ง Log ผ่าน HTTP

รับ log ด้วย POST /log และยืนยันว่าพร้อมใช้งานทันทีในหน่วยความจำ

guide jsonlog

ส่ง Log ผ่าน HTTP

วัตถุประสงค์: รับ log ผ่าน HTTP และตรวจว่าพร้อมสำหรับการอ่าน/สตรีมทันที

เงื่อนไขก่อนเริ่ม

  • เข้าถึงบริการ JsonLog ได้
  • สำหรับช่องทางส่วนตัว ต้องมี Bearer token ที่ acc ตรงกัน
  • ต้องส่ง JSON body ใน POST /log ทุกครั้ง (อย่างน้อย {})

ลำดับงาน API/Script

  1. ส่งเหตุการณ์สาธารณะ:
    • POST /log พร้อม JSON payload
  2. ส่งเหตุการณ์ในช่องทาง:
    • POST /log?cid=<channel_id> พร้อม JSON payload
  3. อ่าน log จากบัฟเฟอร์:
    • GET /log สำหรับ log สาธารณะ
    • GET /log?cid=<channel_id> สำหรับ log ตามช่องทาง

ลำดับงาน HTTP/curl

JSONLOG_BASE_URL="http://localhost:3002"
ACCESS_TOKEN="<optional_account_token>"

# เหตุการณ์สาธารณะ (ไม่ต้อง auth)
curl -sS -X POST "${JSONLOG_BASE_URL}/log" \
  -H "content-type: application/json" \
  --data '{"message":"hello from public","service":"web"}'

# เหตุการณ์ในช่องทาง (auth เป็นทางเลือก ยกเว้นช่องทางส่วนตัว)
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=svc-api" \
  -H "authorization: Bearer ${ACCESS_TOKEN}" \
  -H "content-type: application/json" \
  --data '{"message":"channel event","_jsonlog":{"lvl":"info"}}'

# อ่านบัฟเฟอร์สาธารณะ
curl -sS "${JSONLOG_BASE_URL}/log"

# อ่านบัฟเฟอร์ตามช่องทาง
curl -sS "${JSONLOG_BASE_URL}/log?cid=svc-api" \
  -H "authorization: Bearer ${ACCESS_TOKEN}"

การตรวจสอบ

  • POST /log ตอบ 200 เมื่อรับ payload ได้
  • GET /log ตอบกลับเป็นอาร์เรย์
  • GET /log?cid=<id> ตอบอาร์เรย์สำหรับช่องทางที่มองเห็นได้ และ 404 เมื่อบัญชีไม่ตรงในช่องทางส่วนตัว

เอกสารที่เกี่ยวข้อง