Xây dựng và kết nối api

  1. xây dựng file đọc dữ liệu trả về AP

tạo file data_api.php

<?php
$conn = new mysqli(“localhost”, “giangtra_qlbh”, “Hocvien@123”, “giangtra_QLBH”);
$result = $conn->query(“SELECT * FROM orders”);
$data = [];
while($row = $result->fetch_assoc()) {
    $data[] = $row;
}
header(‘Content-Type: application/json’);
echo json_encode($data);
?>

2. Tạp trang web giúp tableau lấy data từ link api ở bước 1  ( data này đang lấy đơn order, nếu lấy dl bảng khác phải viết lại). File: api_data.html  

<!DOCTYPE html>
<html>
<head>
    <meta charset=”utf-8″>
    <title>GiangTran API Connector</title>
    <script src=”https://connectors.tableau.com/libs/tableauwdc-2.3.latest.js”></script>
</head>
<body>
    <h2>Kết nối API: GiangTranVN</h2>
    <button id=”getDataBtn”>Kết nối tới Tableau</button>
    <script>
        (function() {
      // Định nghĩa connector
      var myConnector = tableau.makeConnector();
      // 1. Định nghĩa schema
      myConnector.getSchema = function(schemaCallback) {
        var cols = [
          {id: “orderNumber”, dataType: tableau.dataTypeEnum.string},
          {id: “orderDate”, dataType: tableau.dataTypeEnum.date},
          {id: “requiredDate”, dataType: tableau.dataTypeEnum.date},
          {id: “shippedDate”, dataType: tableau.dataTypeEnum.date},
          {id: “status”, dataType: tableau.dataTypeEnum.string},
          {id: “comments”, dataType: tableau.dataTypeEnum.string},
          {id: “customerNumber”, dataType: tableau.dataTypeEnum.string}
        ];
        var tableSchema = {
          id: “orders”,
          alias: “Danh sách đơn hàng từ API”,
          columns: cols
        };
        schemaCallback([tableSchema]);
      };
      // 2. Lấy dữ liệu từ API
      myConnector.getData = function(table, doneCallback) {
        fetch(“https://giangtranvn.com/api/data_api.php”)
          .then(response => response.json())
          .then(data => {
            var tableData = [];
            data.forEach(function(item) {
              tableData.push({
                “orderNumber”: item.orderNumber,
                “orderDate”: item.orderDate,
                “requiredDate”: item.requiredDate,
                “shippedDate”: item.shippedDate,
                “status”: item.status,
                “comments”: item.comments,
                “customerNumber”: item.customerNumber
              });
            });
            table.appendRows(tableData);
            doneCallback();
          })
          .catch(error => {
            console.error(“Lỗi khi gọi API:”, error);
          });
      };
      tableau.registerConnector(myConnector);
      // 3. Xử lý khi bấm nút kết nối
      document.getElementById(“getDataBtn”).addEventListener(“click”, function() {
        tableau.connectionName = “GiangTran API Orders”;
        tableau.submit();
      });
    })();
    </script>
</body>
</html>
3. Vào tableau chọn Web data connector. Dán url bước 2 https://giangtranvn.com/api/api_data.html và kết nối

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *