Konteks Akun Dan Anggota
Tujuan: memilih cakupan akun dan memeriksa keanggotaan akun sebelum operasi kredensial atau penyedia.
Aliran UI
- UI memanggil
GET /api/accountsuntuk mencantumkan akun yang dapat diakses. - Pengguna memilih akun aktif.
- UI mempertahankan konteks akun melalui
POST /api/account-views/switch. - UI memuat
GET /api/accounts/:account_id. - UI memuat
GET /api/accounts/:account_id/members. - Pemilik dapat membuat akun anak dengan
POST /api/accounts. - Pemilik dapat memperbarui nilai tampilan akun dengan
PATCH /api/accounts/:account_id. - Pemilik dapat menambah/menghapus anggota dengan
/api/accounts/:account_id/members*. - UI menyimpan
account_iddalam status rute dan mengawali semua panggilan cakupan akun berikutnya.
Alur Perpustakaan Klien
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);
Alur 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}"
Catatan
- Ketidakcocokan jalur akun menghasilkan
403. - Endpoint keanggotaan memiliki cakupan akun dan gerbang peran.
- Endpoint penulisan akun/anggota memerlukan peran
owner. - Pembuatan anggota mendukung
memberdanviewer; promosi kepemilikan menggunakan patch. - Penurunan diri pemilik dan penghapusan keanggotaan mandiri diblokir.
- Penurunan atau penghapusan pemilik terakhir akan menghasilkan
409.