🌐 REST / RPC API
Xbook expose dữ liệu qua tầng ORM. Mọi model đều dùng chung một bộ phương thức chuẩn (search_read, create, write, unlink…), nên khi nắm một model bạn dùng được mọi model.
Mẫu lời gọi
models = xmlrpc.client.ServerProxy(f"{base_url}/xmlrpc/2/object")
result = models.execute_kw(db, uid, api_key, MODEL, METHOD, ARGS, KWARGS)
Các thao tác CRUD
| Thao tác | Method | Ví dụ |
|---|---|---|
| Đọc danh sách | search_read | [[["active","=",true]]], {"fields":["name"],"limit":10} |
| Tạo mới | create | [{"name":"Khách A","email":"a@x.vn"}] |
| Cập nhật | write | [[id], {"phone":"0900..."}] |
| Xóa | unlink | [[id]] |
| Đếm | search_count | [[["customer_rank",">",0]]] |
Lọc & phân trang
Bộ lọc dùng cú pháp domain [[ "field", "operator", value ]]:
domain = [["create_date", ">=", "2026-01-01"], ["amount_total", ">", 1000000]]
orders = models.execute_kw(
db, uid, api_key, "sale.order", "search_read",
[domain], {"fields": ["name", "amount_total"], "limit": 50, "offset": 0, "order": "create_date desc"},
)
Mã lỗi thường gặp
| Tình huống | Nguyên nhân |
|---|---|
AccessError | Tài khoản không đủ quyền với model/bản ghi. |
ValidationError | Dữ liệu vi phạm ràng buộc nghiệp vụ. |
Xác thực thất bại (uid = False) | Sai db, username hoặc api_key. |
mẹo
Một số phân hệ cung cấp endpoint REST/JSON chuyên biệt (ví dụ thanh toán, POS self-order). Tham khảo tài liệu của từng phân hệ khi cần.