Membuat REST API dengan Google Sheet dan Google Script dengan mudah

Membuat REST API dengan Google Sheet dan Google Script dengan mudah

Flutter.id

Assalamualaikum, REST API merupakan hal yang penting untuk membuat aplikasi mobile menjadi dinamis. Biasanya kita membuat REST API dengan PHP atau Framework Codeigniter / Lumen.

Dengan Google Script dan Google Sheet kita bisa membuat REST API dengan mudah, mari kita mulai.

Buka Google Sheet, lalu buat Blank Document

Isi data apa aja, klo saya mengisi data tempat wisata bogor

https://www.merdeka.com/gaya/tempat-wisata-di-bogor-kln.html

kemudian klik tombol share

pilih Advance
pilih change
pilih On Public on the web , klik save

Kemudian coba link share nya di browser

https://docs.google.com/spreadsheets/d/1PwCr5dxpQV3b1xPUbw5laJo4PkGp35uBEF9ADZQ8XbA/edit?usp=sharing

Pastikan buka di browser baru dan tanpa login ke akun google.

Catat id google sheet kamu : 1PwCr5dxpQV3b1xPUbw5laJo4PkGp35uBEF9ADZQ8XbA

Sekarang saatnya membuat REST API, buka Google Script, kli Start Scripting, pilih New Script, dan masukan kode berikut

function doGet(request) {
    var output = ContentService.createTextOutput();
    var data = {};
    var id = request.parameters.id;
    var sheet = request.parameters.sheet;
    var cell = request.parameters.cell;
    var ss = SpreadsheetApp.openById(id);
    if (sheet) {
      if (cell) {
        data = ss.getSheetByName(sheet).getRange(cell).getValue();
      } else {
        data = readData_(ss, sheet);
      }
    } else {
      ss.getSheets().forEach(function(oSheet, iIndex) {
        var sName = oSheet.getName();
        if (! sName.match(/^_/)) {
          data = readData_(ss, sName);
        }
      })
    }
  var result = cell ? data :JSON.stringify({status:'Success', data:data});
    var callback = request.parameters.callback;
    if (callback == undefined) {
      output.setContent(result);
      output.setMimeType(cell ? ContentService.MimeType.TEXT : ContentService.MimeType.JSON);
    }
    else {
      output.setContent(callback + "(" + result + ")");
      output.setMimeType(ContentService.MimeType.JAVASCRIPT);
    }
    return output;
  }
  
  
  function readData_(ss, sheetname, properties) {
  
    if (typeof properties == "undefined") {
      properties = getHeaderRow_(ss, sheetname);
      properties = properties.map(function(p) { return p.replace(/\s+/g, '_'); });
    }
    
    var rows = getDataRows_(ss, sheetname);
    var data = [];
    for (var r = 0, l = rows.length; r < l; r++) {
      var row = rows[r];
      var record = {};
      for (var p in properties) {
        record[properties[p]] = row[p];
      }
      data.push(record);
    }
    return data;
  }
  
  function getDataRows_(ss, sheetname) {
  
    var sh = ss.getSheetByName(sheetname);
    return sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();
  
  }
  
  
  function getHeaderRow_(ss, sheetname) {
  
    var sh = ss.getSheetByName(sheetname);
    return sh.getRange(1, 1, 1, sh.getLastColumn()).getValues()[0];
  
  }

Klik Menu Publish > Deploy As Web App

pilih Anyone, even anonymous

Copy alamat url ke browser atau Postman

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

dicoba di Postman

Tambahkan id dan sheet di param

id = id google sheet

sheet = nama sheet

id dan sheet

Hasil REST API nya siap digunakan di Aplikasi Flutter kita

REST API siap

Link Lengkapnya

https://script.google.com/macros/s/AKfycbznr__g9n2iEEOR94Q06ccPyJVFt4LYiIfkn6jjeZHERMQfyyq2/exec?id=1PwCr5dxpQV3b1xPUbw5laJo4PkGp35uBEF9ADZQ8XbA&sheet=data

dicoba di browser

Semoga bermanfaat

Jangan lupa untuk lihat tutorial lainnya di :

  1. Facebook Page
  2. Youtube
  3. Telegram
  4. Instagram
  5. Github

Flutter Developer