Datastore API
Các thông số:
• resource_id (mixed) – một chuỗi chứa mã tài nguyên hoặc một mảng các chuỗi chứa nhiều mã tài nguyên dùng để tìm kiếm
• filters (mixed) – một chuỗi cho một điều kiện hoặc một mảng của nhiều chuỗi cho nhiều điều kiện lọc
• q (string) – tìm kiếm tài liệu chứa một chuỗi cho trước
• offset (int) – bù lại số lượng dòng này
• limit (int) – giới hạn số dòng dữ liệu trả về
• fields (array hoặc string cách nhau bởi dấu phẩy) – các trường để trả về (mặc định: tất cả các trường theo thứ tự ban đầu)
• sort (string) – tên trường được phân tách bằng dấu phẩy
• join (array) – mảng các trường để kết từ nhiều bảng
• group_by (array) – mảng các trường để gom nhóm
Nếu trường limit không được sử dụng trong truy vấn thì mặc định sẽ có 10 bản ghi được trả về. Nếu trường limit được sử dụng thì API cho phép người dùng yêu cầu tối đa 100 bản ghi. Để có được hơn 100 bản ghi trả về từ API người dùng phải được cấp quyền “Perform unlimited index queries”.
Các hàm tổng hợp:
• sum (string) – trường để tính tổng
• avg (string) – trường để tính giá trị trung bình
• min (string) – trường để tính giá trị nhỏ nhất
• max (string) – trường để tính giá trị lớn nhất
• std (string) – trường để tính độ lệch chuẩn
• variance (string) – trường để tính phương sai
Định dạng URL:
Các tham số được truyền qua URL có một định dạng phổ biến:
param_name[resource_alias][field_name]=value,value1
• param_name: tên thông số
• resource_alias (tùy chọn): một bí danh để tham chiếu một tài nguyên cụ thể trong các thông số tiếp theo.
• field_name (tùy chọn): một tên trường được sử dụng bởi tên thông số
• value: một danh sách các giá trị, được phân cách bởi dấu phẩy “,”.
Lưu ý rằng các đối số resource_alias và field_name là tùy chọn và phụ thuộc vào những gì bạn muốn truy vấn. Ví dụ: nếu bạn cần giới hạn số lượng bản ghi, bạn cần sử dụng tham số giới hạn. Tuy nhiên, không có nghĩa là chỉ định bí danh hoặc trường trong trường hợp đó. Bạn chỉ cần cung cấp số lượng bản ghi bạn cần lấy:
...&limit=100
Có một ngoại lệ: Ngay cả khi tham số sắp xếp chia sẻ cú pháp trên, nó cũng chấp nhận một định dạng thay thế:
...&sort[field1]=desc
Đa truy vấn
Đôi khi bạn muốn thực hiện các truy vấn kho dữ liệu đa dạng trong một yêu cầu (ví dụ: để cung cấp bảng điều khiển Dashboard). Trong trường hợp đó, bạn có thể đăng một đối tượng JSON lên /?q=api/action/datastore/search.json với tất cả các truy vấn để thực hiện.
Phần thân yêu cầu phải có định dạng tương tự như sau:
Phần thân yêu cầu:
{
"my_query": {
"resource_id": "17cb03d4-b686-4d7d-b0bd-248935db59c5",
"limit": 2
},
"my_query1": {
"resource_id": "17cb03d4-b686-4d7d-b0bd-248935db59d6",
"limit": 2
}
}
Dữ liệu trả về:
{
"help": "Search a datastore table. :param resource_id: id or alias of the data that is going to be selected.",
"success": true,
"result": {
"fields": [
{
"id": "TenCoSo",
"type": "text"
},
{
"id": "SoGiayPhep",
"type": "text"
},
{
"id": "DiaChi",
"type": "text"
},
{
"id": "NgayCap",
"type": "text"
},
{
"id": "TinhTrang",
"type": "text"
},
{
"id": "DSPhamViKCB",
"type": "text"
},
{
"id": "TenHinhThuc",
"type": "text"
},
{
"id": "SoCCHN_NDD",
"type": "text"
}
],
"resource_id": [
"17cb03d4-b686-4d7d-b0bd-248935db59c5"
],
"limit": 2,
"total": 1203,
"records": [
{
"TenCoSo": "Địa điểm kinh doanh Công ty Cổ phần Anh Em Bác Sĩ - Phòng khám chuyên khoa Da liễu Anh Em Bác Sĩ",
"SoGiayPhep": "06458/HCM-GPHĐ",
"DiaChi": "274 Cao Thắng (nối dài), Phường 12, Quận 10, TP Hồ Chí Minh",
"NgayCap": "27/6/2017 00:00:00",
"TinhTrang": "Đang hoạt động",
"DSPhamViKCB": "Khám bệnh, chữa bệnh các bệnh về da",
"TenHinhThuc": "Phòng khám chuyên khoa Da liễu",
"SoCCHN_NDD": "000088/LĐ-CCHN"
},
{
"TenCoSo": "Địa điểm Công ty Cổ phần Thương mại và Đầu tư Y tế Y Việt - Phòng khám Bệnh viện Đại học Y Dược 1",
"SoGiayPhep": "06883/HCM-GPHĐ",
"DiaChi": "525/7-525/9 Sư Vạn Hạnh, Phường 12, Quận 10, TP Hồ Chí Minh",
"NgayCap": "26/1/2018 00:00:00",
"TinhTrang": "Đang hoạt động",
"DSPhamViKCB": "Sơ cứu, khám bệnh, chữa bệnh đối với các bệnh nội khoa thông thường, không làm các thủ thuật chuyên khoa,Thực hiện kỹ thuật điện tim,Thực hiện kỹ thuật điện não đồ,Thực hiện kỹ thuật điện cơ,Thực hiện kỹ thuật lưu huyết não,Thực hiện kỹ thuật siêu âm,Thực hiện kỹ thuật nội soi chẩn đoán tiêu hóa trên (Thực quản),Thực hiện kỹ thuật nội soi chẩn đoán tiêu hóa trên (Dạ dày),Thực hiện kỹ thuật nội soi chẩn đoán tiêu hóa trên (Tá tràng),Thực hiện kỹ thuật nội soi tiêu hóa dưới (Đại tràng),Thực hiện kỹ thuật nội soi tiêu hóa dưới (Trực tràng),Thực hiện kỹ thuật siêu âm tim,Các kỹ thuật chuyên môn khác do giám đốc Sở Y tế tỉnh phê duyệt,Không làm các thủ thuật chuyên khoa,Sơ cứu, cấp cứu ban đầu về ngoại khoa,Khám và xử trí các vết thương thông thường,Bó bột, th",
"TenHinhThuc": "Phòng khám đa khoa",
"SoCCHN_NDD": "001613/BYT-CCHN"
}
]
}
}
Định dạng dữ liệu trả về
Yêu cầu có thể được gửi qua HTTP. Dữ liệu có thể được trả về dưới dạng JSON, XML hoặc JSONP. Để lấy dữ liệu ở định dạng khác, hãy thay đổi phần mở rộng trong URL.
Sử dụng đường dẫn sau để nhận kết quả trả về dưới định dạng JSON:
/?q=api/action/datastore/search.json
Hoặc sử dụng đường dẫn sau để nhận kết quả trả về dưới định dạng XML:
/?q=api/action/datastore/search.xml
Hoặc sử dụng đường dẫn sau để nhận kết quả trả về dưới định dạng JSONP:
/?q=api/action/datastore/search.jsonp
Hạn chế
• Tham số q không làm việc kết hợp với tham số join
• Bộ lọc không hoạt động với giá trị float (số thập phân)