Thư viện này cho phép các nhà phát triển gọi tất cả các phương thức như đã thấy trong tham chiếu API REST của Tableau Server. Mỗi phương thức trả về phản hồi HTTP tương ứng, cung cấp trong số những thứ khác mã trạng thái và nội dung phản hồi JSON
API REST của Tableau có nhiều phương thức bạn có thể tận dụng. Sử dụng tài liệu tham khảo API của họ để xác định các phương pháp giúp bạn hoàn thành bất kỳ tác vụ nào bạn cần. Mục đích của thư viện này là làm cho việc gọi các phương thức đó dễ dàng nhất có thể
trường hợp sử dụng
Giả sử bạn muốn tải xuống tệp PDF hoặc ảnh chụp màn hình của từng bảng điều khiển trên Tableau Server. Nói chung, bạn sẽ cần phải
- lấy danh sách tất cả các trang web trên Máy chủ Tableau của bạn
- đối với mỗi site, nhận danh sách tất cả sổ làm việc trên site
- đối với mỗi sổ làm việc, hãy tải xuống tệp PDF/ảnh chụp màn hình cho từng dạng xem trong sổ làm việc
Mặc dù không có phương thức nào trong Tableau Server REST API để in tất cả các tệp PDF sổ làm việc trên máy chủ, nhưng thư viện này cung cấp cho bạn các công cụ cần thiết để kết hợp các phương thức hiện có và xây dựng chức năng bạn cần. Thư viện này cho phép gọi tất cả các phương thức API REST của Máy chủ Tableau, cho phép bạn tự động hóa nhiều tác vụ quản trị Máy chủ Tableau của mình
Trong kịch bản trên, chúng ta có thể hoàn thành nhiệm vụ bằng cách xác định các phương thức sau trong Tham chiếu API REST
- Tham chiếu API. Trang web truy vấn. tableau-api-lib. query_sites[]
- Tham chiếu API. Truy vấn sổ làm việc trên trang web. tableau-api-lib. query_workbooks_on_site[]
- Tham chiếu API. Dạng xem Truy vấn cho Sổ làm việc. tableau-api-lib. query_views_for_workbook[]
- Tham chiếu API. Truy vấn Xem PDF. tableau-api-lib. query_view_pdf[]
- Tham chiếu API. Truy vấn Xem hình ảnh. tableau-api-lib. query_view_image[]
- Tham chiếu API. Chuyển đổi trang web. tableau-api-lib. switch_site[]
Tại sao nên sử dụng tableau-api-lib
Thư viện này cố gắng phản ánh từng phương thức API REST, từng từ một. Khi bạn tìm thấy các phương thức bạn cần trong tham chiếu API Tableau Server REST, thư viện này sẽ giúp bạn xâu chuỗi chúng lại với nhau. Để sử dụng thư viện này một cách hiệu quả, trước tiên bạn duyệt tham chiếu API REST của Tableau và xác định các phương thức cụ thể mà bạn định sử dụng. Sau đó, bạn có thể gọi các phương thức đó bằng thư viện này
Khi bạn gọi các phương thức tableau-api-lib, bạn sẽ nhận được phản hồi HTTP. Nếu bạn đang mong dữ liệu được trả lại cho mình [truy vấn người dùng, sổ làm việc, nhóm, v.v. ] thì bạn có thể sẽ muốn truy cập phần thân JSON của phản hồi
from tableau_api_lib import TableauServerConnection
tableau_config = {
'tableau_prod': {
'server': '//.com',
'api_version': '',
'username': '',
'password': '',
'site_name': '',
'site_url': '',
'cache_buster': '',
'temp_dir': ''
}
}
connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod']
connection.sign_in[]
print[connection.query_sites[].json[]]
connection.sign_out[]
0from tableau_api_lib import TableauServerConnection
tableau_config = {
'tableau_prod': {
'server': '//.com',
'api_version': '',
'username': '',
'password': '',
'site_name': '',
'site_url': '',
'cache_buster': '',
'temp_dir': ''
}
}
connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod']
connection.sign_in[]
print[connection.query_sites[].json[]]
connection.sign_out[]
1 -> truy cập phần thân JSON của phản hồi, có thể được truy cập trực tiếp dưới dạng lệnhfrom tableau_api_lib import TableauServerConnection
tableau_config = {
'tableau_prod': {
'server': '//.com',
'api_version': '',
'username': '',
'password': '',
'site_name': '',
'site_url': '',
'cache_buster': '',
'temp_dir': ''
}
}
connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod']
connection.sign_in[]
print[connection.query_sites[].json[]]
connection.sign_out[]
2Làm cách nào chúng tôi biết để truy cập phần tử 'trang web' và 'trang web'? . Sử dụng tài liệu tham khảo để hiểu cách máy chủ sẽ phản hồi yêu cầu của bạn
Tất cả hoạt động như thế nào
3from tableau_api_lib import TableauServerConnection tableau_config = { 'tableau_prod': { 'server': '//.com', 'api_version': '', 'username': '', 'password': '', 'site_name': '', 'site_url': '', 'cache_buster': '', 'temp_dir': '' } } connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod'] connection.sign_in[] print[connection.query_sites[].json[]] connection.sign_out[]
- Mở sổ ghi chép Jupyter hoặc tệp Python trong trình soạn thảo văn bản bạn chọn
4from tableau_api_lib import TableauServerConnection tableau_config = { 'tableau_prod': { 'server': '//.com', 'api_version': '', 'username': '', 'password': '', 'site_name': '', 'site_url': '', 'cache_buster': '', 'temp_dir': '' } } connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod'] connection.sign_in[] print[connection.query_sites[].json[]] connection.sign_out[]
- Nhập một đối tượng cấu hình [dict/JSON] hoặc xây dựng nó từ đầu bằng cách sử dụng các nguyên tắc cấu hình bên dưới
0from tableau_api_lib import TableauServerConnection tableau_config = { 'tableau_prod': { 'server': '//.com', 'api_version': '', 'username': '', 'password': '', 'site_name': '', 'site_url': '', 'cache_buster': '', 'temp_dir': '' } } connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod'] connection.sign_in[] print[connection.query_sites[].json[]] connection.sign_out[]
1from tableau_api_lib import TableauServerConnection tableau_config = { 'tableau_prod': { 'server': '//.com', 'api_version': '', 'username': '', 'password': '', 'site_name': '', 'site_url': '', 'cache_buster': '', 'temp_dir': '' } } connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod'] connection.sign_in[] print[connection.query_sites[].json[]] connection.sign_out[]
- Gọi kết nối Máy chủ Tableau của bạn để thực hiện các tác vụ từ tham chiếu API REST
2from tableau_api_lib import TableauServerConnection tableau_config = { 'tableau_prod': { 'server': '//.com', 'api_version': '', 'username': '', 'password': '', 'site_name': '', 'site_url': '', 'cache_buster': '', 'temp_dir': '' } } connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod'] connection.sign_in[] print[connection.query_sites[].json[]] connection.sign_out[]
Xác định đối tượng cấu hình của bạn
Một đối tượng cấu hình mẫu/khởi động được cung cấp
from tableau_api_lib import TableauServerConnection
tableau_config = {
'tableau_prod': {
'server': '//.com',
'api_version': '',
'username': '',
'password': '',
'site_name': '',
'site_url': '',
'cache_buster': '',
'temp_dir': ''
}
}
connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod']
connection.sign_in[]
print[connection.query_sites[].json[]]
connection.sign_out[]
3 from tableau_api_lib import TableauServerConnection
tableau_config = {
'tableau_prod': {
'server': '//.com',
'api_version': '',
'username': '',
'password': '',
'site_name': '',
'site_url': '',
'cache_buster': '',
'temp_dir': ''
}
}
connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod']
connection.sign_in[]
print[connection.query_sites[].json[]]
connection.sign_out[]
4Đối tượng cấu hình có thể có nhiều môi trường. Môi trường mặc định được định nghĩa là 'tableau_prod' và bạn có thể thay đổi điều này nếu cần bằng cách chỉ định tham số 'env' khi gọi lớp TablauServerConnection. Đối với mỗi môi trường bạn có, hãy xác định chúng. Ví dụ
tableau_config = {
'tableau_prod': {
'server': '//.com',
'api_version': '',
'username': '',
'password': '',
'site_name': '',
'site_url': '',
'cache_buster': '',
'temp_dir': ''
},
'tableau_dev': {
'server': '//.com',
'api_version': '',
'username': '',
'password': '',
'site_name': '',
'site_url': '',
'cache_buster': '',
'temp_dir': ''
}
}
dùng thử
Ví dụ này tạo kết nối Máy chủ Tableau và in phản hồi từ việc gọi phương thức "query_sites" của API REST
from tableau_api_lib import TableauServerConnection
tableau_config = {
'tableau_prod': {
'server': '//.com',
'api_version': '',
'username': '',
'password': '',
'site_name': '',
'site_url': '',
'cache_buster': '',
'temp_dir': ''
}
}
connection = TableauServerConnection[config_json=tableau_config, env='tableau_prod']
connection.sign_in[]
print[connection.query_sites[].json[]]
connection.sign_out[]
Ví dụ về xây dựng danh sách các bộ lưu trữ tên trang web và ID trang web cho từng trang web trên máy chủ
connection = TableauServerConnection[tableau_config]
connection.sign_in[]
response = connection.query_sites[]
site_list = [[site['name'], site['id']] for site in response.json[]['sites']['site']]
connection.sign_out[]
Biến site_list là danh sách tất cả các trang có sẵn và mỗi phần tử của danh sách này là một bộ chứa tên trang và ID trang
Ví dụ về giải nén kết quả được phân trang
Giả sử bạn thử làm ví dụ trước [in tất cả tên trang web và ID trang web], nhưng bạn chỉ thấy 100 trang web, trong khi tổ chức của bạn thực sự có 170 trang web. Phản hồi HTTP bạn nhận được sẽ phân trang kết quả bất cứ khi nào bạn truy vấn máy chủ cho các mục như trang web, người dùng, nhóm, v.v.
Theo mặc định, các phản hồi HTTP này trả về 100 kết quả trên mỗi trang. Bạn có thể sửa đổi số lượng này theo cách thủ công hoặc bạn có thể sử dụng các hàm util tích hợp sẵn của chúng tôi để kiểm soát hành vi của các kết quả được phân trang
Dưới đây, bạn có thể tìm thấy ví dụ về cách giải nén tất cả các trang trong kết quả được phân trang
Hàm extract_pages[] tự động giải nén tất cả các trang và kết quả có sẵn cho chúng tôi thông qua phương thức query_sites[] của kết nối của chúng tôi
Chúng ta cũng có thể chơi với các tham số tùy chọn trong hàm extract_pages[], như bên dưới
from tableau_api_lib.utils import extract_pages
connection = TableauServerConnection[tableau_config]
connection.sign_in[]
all_sites = extract_pages[conn.query_sites, starting_page=1, page_size=200, limit=500]
site_list = [[site['name'], site['id']] for site in all_sites]
connection.sign_out[]
Ví dụ trên sẽ lặp qua từng trang có sẵn của kết quả trang web [mỗi trang có 200 kết quả, một số chúng tôi đã chỉ định] và cắt bỏ kết quả ở 500 trang web. Không có giới hạn ngưỡng mặc định khi sử dụng extract_pages[];
Lưu ý rằng trong ví dụ đầu tiên, chúng tôi đã gọi trực tiếp query_sites[] và sau đó cần phân tích cú pháp đối tượng JSON được phương thức đó trả về. Tuy nhiên, khi chúng tôi sử dụng extract_pages[], chúng tôi chuyển phương thức 'query_sites' làm đối số và kết quả trả về cho chúng tôi đã được phân tích cú pháp. Phương thức extract_pages[] là một cách rõ ràng để lấy các đối tượng mong muốn mà chúng tôi đang truy vấn
Các chức năng được tìm thấy trong tableau_api_lib. sử dụng tất cả các bản dựng dựa trên chức năng cơ bản được hỗ trợ bởi tham chiếu API Tableau Server REST. Bạn có thể sử dụng các chức năng được tạo sẵn này hoặc xây dựng chức năng của riêng bạn khi bạn thấy phù hợp