帳戶上下文和成員
目的:在憑證或提供者操作之前選擇帳戶範圍並檢查帳戶成員資格。
使用者介面流程
- UI 呼叫
GET /api/accounts列出可存取的帳戶。 - 用戶選擇活動帳戶。
- UI 透過
POST /api/account-views/switch保留帳戶上下文。 - UI 載入
GET /api/accounts/:account_id。 - UI 載入
GET /api/accounts/:account_id/members。 - 所有者可以使用
POST /api/accounts建立兒童帳戶。 - 擁有者可以使用
PATCH /api/accounts/:account_id更新帳戶顯示值。 - 擁有者可以使用
/api/accounts/:account_id/members*新增/刪除成員。 - UI 將
account_id儲存在路由狀態中,並為所有後續帳戶範圍的呼叫添加前綴。
客戶端庫流程
const accounts = await api.accounts.list();
const active = selectAccount(accounts.data);
const account = await api.accounts.get(active.id);
const members = await api.members.list(active.id);
HTTP/curl 流程
API_BASE_URL="https://api.inbox-manager.com"
curl -sS "${API_BASE_URL}/api/accounts" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/account-views/switch" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data "{\"account_id\":\"${ACCOUNT_ID}\"}"
curl -sS "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/search" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"query":"owner","limit":20,"offset":0}'
curl -sS -X POST "${API_BASE_URL}/api/accounts" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"name":"Operations"}'
curl -sS -X PATCH "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"name":"Operations Team"}'
curl -sS -X POST "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"user_id":"uid_target","role":"member"}'
curl -sS -X PATCH "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/${MEMBER_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"role":"owner"}'
curl -sS -X DELETE "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/${MEMBER_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}"
註釋
- 帳戶路徑不符返回
403。 - 會員端點是帳號範圍和角色門控的。
- 帳號/成員寫入端點需要
owner角色。 - 會員建立支援
member和viewer;所有權提升使用補丁。 - 業主自我降級和自我會員資格刪除被阻止。
- 最後一個擁有者降級或刪除返回
409。