Để bắt đầu truy vấn dữ liệu từ server, trước tiên, người dùng cần đăng nhập vào hệ thống. Việc đăng nhập giúp Phoebus API xác định yêu cầu truy vấn dữ liệu này có phải từ những người dùng đã được cấp phép hay không.
Các loại truy vấn dữ liệu mà Phoebus API cung cấp bao gồm:
Lấy danh sách dữ liệu (infolist)
Lấy một record chỉ định
Truy vấn tài liệu và hình ảnh
Truy vấn dữ liệu với SQD
Truy vấn dữ liệu với Extended table
Sử dụng tag trong Phoebus API
Ngôn ngữ của dữ liệu được trả về
Để lấy 1 danh sách dữ liệu bất kỳ, người dùng cần gửi 1 request đến EndPoint với HTTP method là GET. Phoebus API hỗ trợ lấy dữ liệu từ tất cả các tính năng người dùng có thể truy cập từ Phoebus. VD: lấy tất cả các mẫu tin tại tính năng pbs.BO.CRM.NEWS
Trong trường hợp dữ liệu trả về quá nhiều, hoặc người dùng chỉ muốn lấy những record đáp ứng các điều kiện đã đề ra, ta cần tạo một request với nội dung như ví dụ sau:
VD: lấy tất cả các mẫu tin được tải lên bởi user NLT
GET EndPoint/pbs_bo_crm_news?postedby=NLT
VD: lấy tất cả các mẫu tin được tải lên bới user NLT và ngày post 30/07/2018
GET EndPoint/pbs_bo_crm_news?postedby=NLT&postdate=30/07/2018
Để lấy 1 record xác định, người dùng cần gửi 1 request đến EndPoint với HTTP method là GET và trong câu API phải chỉ rõ mã của record muốn lấy. VD: lấy mẫu tin có mã (LineNo) = 11
GET EndPoint/pbs_bo_crm_news/11
Hoặc sử dụng API:
GET EndPoint/pbs_bo_crm_news?/LineNo=11
GET EndPoint/pbs_bo_crm_na?AddCode=C0002&$entity=AHR&$action=CheckExisting
Kết quả:
{
"status": 200,
"msg": "Your data with criteria AddCode=C0002&$action=CheckExisting&$entity=AHR existing status: True",
"APIReturnCode": "100. OK",
"APIMsg": "",
"data": true
}
SQD là một trong những tính năng tận dụng sức mạnh của QD, với SQD người dùng có thể lấy về giá trị mong muốn với nguồn dữ liệu được định nghĩa sẵn.
Để bắt đầu sử dụng SQD từ Phoebus API, người dùng cần định nghĩa trước Scalar Query Designer trên Phoebus sau đó thực hiện 1 request với HTTP Method là GET theo cú pháp sau:
GET EndPoint/tags/ScalarQD?P1=…P2=…P3=…
Với:
VD: Lấy số lượng Property đã quá 14 ngày hoàn tiền cọc thi công
GET EndPoint/tags/ScalarQD
Request Header:
Ta có thể trích xuất dữ liệu thông qua việc gọi một QD được định nghĩa từ trước. Tuy nhiên khi phát triển các frontend dựa trên Phoebus API. Dữ liệu cần trích xuất càng ít phụ thuộc vào customization càng tốt. Phoebus API cho phép tạo và thực hiện các truy vấn với QD theo cú pháp:
GET EndPoint pbs_bo_Data_QD? $QdSource=PRO&$Select=ANAL_P0|ANAL_P1|COUNT(STATUS)&STATUS=A
Kết quả :
"status": 200,
"msg": "Return datatable with 284 records",
"APIReturnCode": "100. OK",
"APIMsg": "",
"data": [
{
"ANAL_P0": "IMP00A ",
"ANAL_P1": "001 ",
"STATUS": 22
},
{
"ANAL_P0": "IMP00B ",
"ANAL_P1": "015 ",
"STATUS": 14
},
....
....
Extended table là tính năng dùng để mở rộng các bảng dữ liệu có sẵn trong Phoebus bằng cách thêm vào bảng dữ liệu gốc những cột tính toán. Việc mở rộng các bảng dữ liệu có sẵn nhằm chuẩn bị dữ liệu cho các báo cáo.
Truy vấn dữ liệu từ Extended Table thông qua cú pháp sau:
GET EndPoint/pbs_bo_data_extendedtable?$code=…
Với $code là mã ExtendedTable cần lấy dữ liệu.
Toàn bộ các biểu thức (tags) trong Phoebus đều có thể truy xuất được thông qua Phoebus API. Ta có thể vận dụng các biểu thức này để tính toán. Cú pháp chung khi sử dụng Tags trong Phoebus API như sau:
GET EndPoint/tags/PhoebusTAG?P1=…&P2=…&P3 =…
Tương tự như việc truy vấn 1 đối tượng thông thường, để truy vấn tài liệu và hình ảnh từ Endpoint, người dùng sử dụng API sau:
GET EndPoint/pbs_BO_DM_DocLinkViewer?reference=…&transtype=…
Với:
-transtype: là tên tính năng của mẫu tin có đính kèm hình (FunctionName) -reference: là mã của hình ảnh/tài liệu khi upload, mã này tuân theo cấu trúc: FunctionName#LineNo
VD: lấy hình ảnh của mẫu tin số 8 trong tính năng News
GET EndPoint/pbs_BO_DM_DocLinkViewer?reference=NEWS#8&transtype=NEWS
Lưu ý:
Khi lấy 1 danh sách dữ liệu (InfoList), hình ảnh sẽ được trả về tại field _imageUrl, nếu mẫu tin trong danh sách có hình ảnh đính kèm. Trường hợp mẫu tin có nhiều hình, hình ảnh đầu tiên sẽ được trả về.
Updated on : 2023-02-10 23:24:06. by : . at X1-EXTREME.
Topic : api_get