ส่ง Log ผ่าน HTTP
วัตถุประสงค์: รับ log ผ่าน HTTP และตรวจว่าพร้อมสำหรับการอ่าน/สตรีมทันที
เงื่อนไขก่อนเริ่ม
- เข้าถึงบริการ JsonLog ได้
- สำหรับช่องทางส่วนตัว ต้องมี Bearer token ที่
accตรงกัน - ต้องส่ง JSON body ใน
POST /logทุกครั้ง (อย่างน้อย{})
ลำดับงาน API/Script
- ส่งเหตุการณ์สาธารณะ:
POST /logพร้อม JSON payload
- ส่งเหตุการณ์ในช่องทาง:
POST /log?cid=<channel_id>พร้อม JSON payload
- อ่าน 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เมื่อบัญชีไม่ตรงในช่องทางส่วนตัว