images
14/10/2020 04:11 am

Tạo Rest API với dữ liệu từ Google Sheet

Các bước để tạo Rest API từ Google Sheet: Tạo Google Sheet file, Tạo script cho Google Sheet để tạo API, Thiết lập và xuất bản API trên Google Sheet, Gọi API từ Javascript

- Google sheet tiện lợi để lưu data có cấu trúc

- Google sheet online và chia sẻ được

- Dựng nhanh một website với Rest API từ Google



Làm sao để tạo Rest API từ dữ liệu của Google Sheet?



Và bạn muốn API trả về JSON:



Các bước để tạo Rest API từ Google Sheet:


- Tạo Google Sheet file

- Tạo script cho Google Sheet để tạo API

- Thiết lập và xuất bản API trên Google Sheet

- Gọi API từ Javascript


1. Tạo Google Sheet file:


Bạn tạo Google sheet với nội dung sau:



2. Tạo Google Apps Script:


Mở Editor của Google Apps Script bằng cách: Chọn Tools > Script Editor



Bạn nhìn thấy giao diện Google Apps Script tương tự như sau. Bạn xóa toàn bộ script và thay thế bằng code mới.



//  Enter sheet name where data is to be written below

var SHEET_NAME = "languages";


var SCRIPT_PROP = PropertiesService.getScriptProperties(); // new property service


function doGet(e){

  var start = e.parameter['_start'];

  var end = e.parameter['_end'];

  if (!start) {

    start = 0;

  } else {

    start = parseInt(start);

  }

  if (!end) {

    end = 50;

  } else {

    end = parseInt(end);

  }

  var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));

  var sheet = doc.getSheetByName(SHEET_NAME);

  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];

  var rowNumbers = sheet.getLastRow();

  var colums = sheet.getLastColumn();

  var data = []

  for(var i = start + 2; i <= rowNumbers;i++) {

    if (i < end + 2) {

      var object = {};

        for(var j = 0; j < colums;j++) {

          object[headers[j]] = sheet.getRange(i,j+1).getValue();

        }

       data.push(object)

    }

  }

  var callback = e.parameter.callback;

  var result = JSON.stringify({"data":data});

  if (callback) {

    return ContentService

          .createTextOutput(e.parameter.callback + '(' + result + ')')

          .setMimeType(ContentService.MimeType.JAVASCRIPT);

  } else {

    return ContentService

          .createTextOutput(result)

          .setMimeType(ContentService.MimeType.JSON);

  }

}



function setup() {

    var doc = SpreadsheetApp.getActiveSpreadsheet();

    SCRIPT_PROP.setProperty("key", doc.getId());

}


3. Thiết lập và xuất bản API trên Google Sheet


Bước 1: Chạy setup cho Google Action script


Trên cửa sổ của Google Sheet script, bạn chọn hàm setup và click vào biểu tượng Run để chạy setup



Bước 2: Xuất bản script:



Chọn Update hoặc OK. Nếu bạn chỉnh sửa nhiều lần thì:

- Project Version Chọn là New

- Execute app: chọn Me (your email)

- Anyone, even anonymous



Bước 3: Chọn OK. Link API chính là nội dung trong current web app URL


Giờ bạn hãy click vào link để có thành quả:


https://script.google.com/macros/s/AKfycbxR3qkkJwLas1M7jJ7wm4vP0KUMUjZLwTeV53zhlTqxO3Og47k/exec 

 

4. Gọi API từ JAVASCRIPT


Bạn không thể gọi link trên bằng Javascript vì sẽ bị lỗi CORS. Để gọi được từ Javascript thì bạn phải gọi thông qua kĩ thuật là JSONP bằng cách gửi lên callback function như ví dụ sau sử dụng Jquery:


$.getJSON('https://script.google.com/macros/s/AKfycbxR3qkkJwLas1M7jJ7wm4vP0KUMUjZLwTeV53zhlTqxO3Og47k/exec?callback=?', function(json) {

   console.log(json);

});


Mời bạn đọc thêm bài Dựng Rest API có tích hợp Database sử dụng Spring Boot.


- Tech Zone -

Thư giãn chút nào!!!

Bài viết liên quan