API và webhook? in

Sửa đổi trên: Wed, 28 Tháng 6, 2023 tại 5:50 CH


01. Trước tiên cần phân biệt 2 khái niệm API và Webhook. API hiểu đơn giản là đầu nhận (input), Webhook là nguồn phát (output).


02. Khi nói API của app Base, ví dụ API của Base Wework, thì có nghĩa là Wework đóng vai trò là đầu nhận (input) các request (yêu cầu) do nguồn bên ngoài gửi tới (là hệ thống của khách hàng).
API là 1 bộ gồm nhiều endpoint (điểm kết nối), khi hệ thống bên ngoài gửi yêu cầu tới sẽ chọn đúng 1 trong các endpoint mà API cung cấp (yêu cầu có thể gắn kèm 1 số thông tin). Có 1 vài kiểu request là yêu cầu trả ra dữ liệu (project, task theo id …) hoặc tạo mới 1 project, task, tasklist … Khách hàng muốn sử dụng API của app Base thì cần có hệ thống có thể gửi được request tới API của Base (thường sẽ cần xây hệ thống + IT phụ trách).


Tài liệu cho API:


Account: https://documenter.getpostman.com/view/1623302/T1Dv6u6m?version=latest

Wework: https://documenter.getpostman.com/view/1345096/SztA68Az?version=latest 

Workflow: https://documenter.getpostman.com/view/1345096/SWE84Hd1?version=latest

Request: https://documenter.getpostman.com/view/1345096/SzzheyWQ?version=latest 

Goal: https://documenter.getpostman.com/view/11329832/TzecE5zg

Inside: https://documenter.getpostman.com/view/14010308/TVzaAtgV

Office: https://documenter.getpostman.com/view/14010308/UUy4d5eu

Booking: https://documenter.getpostman.com/view/14010308/2s93K1oKD6 

E-Hiring: https://documenter.getpostman.com/view/1623302/Tzz8tHau 

HRM: https://documenter.getpostman.com/view/12068719/2s8YRmKD8b

Checkin: https://documenter.getpostman.com/view/8031761/TW6upp88 (API cho cloud checkin, trường hợp khách hàng collect logs và đẩy lên server cloud tập trung nhưng muốn gửi qua Base)

Timeoff: https://documenter.getpostman.com/view/1345096/UyrHftXj

Schedule: https://documenter.getpostman.com/view/12068719/U16ks6BS#5f75f245-f051-42fb-83c5-e5d26afb3bb6

Payroll: https://documenter.getpostman.com/view/12068719/2s8YRmGrgf#e4e1d8af-3eec-4b3f-9f5a-581abba2cedc


03. Webhook của Base phức tạp hơn, nó là nguồn phát dữ liệu (output) khi xảy ra 1 trong số những sự kiện được chỉ định trên app (ví dụ mark done task, job done/failed, request approved …).


Thiết kế đầu tiên đơn giản là khi có sự kiện xảy ra thì nó sẽ gửi dữ liệu đến 1 endpoint cụ thể bên ngoài (là API của khách hàng hoặc 1 tool nào đó như Zapier). Ở đây khách hàng cần xây dựng API của chính mình để nhận dữ liệu.


Thiết kế advanced là cho phép các app Base vừa đóng vai trò là nguồn phát (output) và đầu nhận (input) để truyền dữ liệu giữa các app Base với nhau. Ở đây mỗi sự kiện của nguồn phát sẽ được gắn với 1 hoặc nhiều webhook url (cũng chính là API endpoint của đầu nhận). Về bản chất thì có thể có Create, Update, Get API endpoint … tuy nhiên hệ thống hiện đang chỉ hỗ trợ Create API endpoint.


04. Trường hợp khách hàng thường gắn với 1 hệ thống thứ 3 (Zoho, MISA …) và muốn kết nối dữ liệu với Base. Có 2 chiều, lấy dữ liệu từ app ngoài cho vào app Base hoặc ngược lại. Như đã giải thích phía trên, nếu app Base là điểm xuất phát của dữ liệu thì ta dùng webhook, nếu app Base là điểm kết thúc thì dùng API.
Cả 2 trường hợp đều cần có 1 hệ thống đứng giữa làm phần chuyển đổi, vì vậy khách hàng phải có team IT hoặc outsource để xây dựng hệ thống này. Base cung cấp các tài liệu cho API và Webhook, không hỗ trợ xây dựng hệ thống trung gian này. Các thiết kế của Base là standard về kĩ thuật và phù hợp với cấu trúc framework Base nên sẽ không thay đổi để phù hợp với các hệ thống khách xây dựng, hệ thống của khách hàng cầni khớp với những gì Base cung cấp.


Câu trả lời này có giúp ích cho bạn không? Yes No

Send feedback
Rất tiếc là chúng tôi không giúp được nhiều. Hãy giúp chúng tôi cải thiện bài viết này bằng phản hồi của bạn.