VÒNG ĐỜI TÀI NGUYÊN API
Chuyển trạng thái, hủy và retry
Client tích hợp theo state machine rõ ràng, không phải suy đoán yêu cầu timeout đã được xử lý hay chưa.
01
State machine của yêu cầu ký
created
→ awaiting_approval
→ approved
→ activated
→ signing
→ completed
Terminal/exception states:
rejected · expired · cancelled · provider_unavailable · failed02
Quy tắc chuyển trạng thái
| Từ | Hành động | Đến | Idempotency |
|---|---|---|---|
| created | Yêu cầu tùy chọn phê duyệt | awaiting_approval | Có thể lặp lại an toàn |
| awaiting_approval | Xác minh phê duyệt WebAuthn | approved | Idempotent theo assertion/challenge |
| approved | Kích hoạt authorization ký | activated | Bắt buộc idempotency key |
| activated | Thực thi chữ ký | signing/completed | Bắt buộc idempotency key |
| created/awaiting_approval | Hủy | cancelled | Có thể lặp lại an toàn |
| any non-terminal | Hết hạn theo policy | expired | Do server kiểm soát |
03
Thao tác bất đồng bộ
- 202 Accepted trả về resource URI và hướng dẫn retry-after.
- GET tài nguyên hỗ trợ polling với backoff có giới hạn.
- Sự kiện webhook theo mô hình at-least-once và phải được khử trùng lặp.
- Hủy chỉ là best-effort sau khi thao tác được bảo vệ đã bắt đầu thực thi.
- Xác minh một phần được thể hiện rõ ràng, không bao giờ được quy đổi thành thành công.