Truy vấn dữ liệu với Phoebus API

Giới thiệu


Để 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


Để 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

1173121e-4940-4aba-ba3d-2a747bbdf682.api_get_md

Lấy dữ liệu kèm điều kiện lọc

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

6b56938f-fb5c-4110-94e1-b19b15fcc559.api_get_md

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

25d98c5f-a79d-417d-8a0b-420e0b4a019c.api_get_md

Lấy một record (Editable)


Để 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

15848e6e-5955-44b7-a4b3-84414cdd72f2.api_get_md

Hoặc sử dụng API:

GET EndPoint/pbs_bo_crm_news?/LineNo=11

839f563c-531a-4bdd-8c17-5fe6b12d25a0.api_get_md

Kiểm tra một mẩu tin có tồn tại hay không


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
}

Truy vấn dữ liệu với SQD


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:

9e2a47b8-9c78-44ba-9fc2-aef6659c54f7.api_get_md

Truy vấn dữ liệu với QD - không cần tạo QD trước


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
        },
 ....
 ....

Truy vấn dữ liệu với Extended Table


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.

Sử dụng Tag trong Phoebus API


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 =…

Truy vấn tài liệu và hình ảnh


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

2f2f689a-4f03-4bf7-b851-90a134f3fa54.api_get_md

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ề.

Xem thêm



Updated on : 2023-02-10 23:24:06. by : . at X1-EXTREME.

Topic : api_get