HTTP でログを送信
目的: HTTP でログを取り込み、取得/配信ですぐ利用できることを確認すること。
前提条件
- JsonLog サービスに到達できること。
- プライベートチャネルでは、
accが一致する Bearer トークンを持っていること。 POST /logには必ず JSON リクエストボディ(最小{})を送ること。
API/Script フロー
- 公開イベントを送信:
- JSON ペイロードで
POST /log。
- JSON ペイロードで
- チャネルイベントを送信:
- JSON ペイロードで
POST /log?cid=<channel_id>。
- JSON ペイロードで
- バッファログを読む:
- 公開ログは
GET /log。 - チャネルログは
GET /log?cid=<channel_id>。
- 公開ログは
HTTP/curl フロー
JSONLOG_BASE_URL="http://localhost:3002"
ACCESS_TOKEN="<optional_account_token>"
# 公開イベント(認証不要)
curl -sS -X POST "${JSONLOG_BASE_URL}/log" \
-H "content-type: application/json" \
--data '{"message":"hello from public","service":"web"}'
# チャネルイベント(プライベートチャネルでなければ認証は任意)
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を返します。GET /logは配列を返します。GET /log?cid=<id>は可視チャネルで配列、アカウント不一致のプライベートチャネルで404を返します。