Existem N maneiras de se criar uma API REST a partir de sua planilha Google (sheets). Nesta postagem mostrarei o que considero uma versão “simplificada” para que em poucos minutos você consigo realizar algumas requisições de seus dados em formato json, e criar fluxos independentes e consumíveis facilitando e dinamizando suas tarefas e atividades cotidianas (a depender de seus requisitos e finalidades, claro).

Vamos lá!?

  1. Crie a planilha no drive

Untitled

  1. Vá em “extensões” > Apps Script
  2. Código:
// Passo 1
var wbook = SpreadsheetApp.openByUrl('<https://docs.google.com/spreadsheets/d/17rAxTU-kBLKad4hjzpxJ10chLlyqs6-EoP4TaBo4vq4/edit#gid=0>');

var sheet = wbook.getSheetByName('Sheet1');

// Passo 2
function doPost(e) {
  if (e && e.parameter) {
    var action = e.parameter.action;

    if (action == 'addUser') {
      return addUser(e);
    } else if (action == 'updateUser') {
      return updateUser(e);
    } else if (action == 'deleteUser') {
      return deleteUser(e);
    }
  }

  return ContentService.createTextOutput("Erro: Ação inválida ou parâmetros ausentes").setMimeType(ContentService.MimeType.TEXT);
}

function doGet(e) {
  var action = e.parameter.action;

  if (action == 'getAll') {
    return getAllData();
  }

  return ContentService.createTextOutput("Erro: Ação inválida ou parâmetros ausentes").setMimeType(ContentService.MimeType.TEXT);
}

// Passo 3
function getAllData() {
  var data = getDataAsJson();
  return ContentService.createTextOutput(JSON.stringify(data)).setMimeType(ContentService.MimeType.JSON);
}

function addUser(e) {
  var user = JSON.parse(e.postData.contents);

  // Obter todos os IDs existentes
  var existingIds = getDataAsJson().map(function (user) {
    return user.id;
  });

  // Gerar um novo ID único
  var userId = generateUniqueId(existingIds);

  // Adicionar o ID ao usuário
  user.id = userId;

  // Adicionar usuário à planilha
  sheet.appendRow([userId, user.name, user.age, user.mobile, user.email]);

  return ContentService.createTextOutput("Sucesso: Usuário adicionado").setMimeType(ContentService.MimeType.TEXT);
}

function updateUser(e) {
  var user = JSON.parse(e.postData.contents);
  var userId = user.id; // Supondo que o JSON inclui um campo 'id'
  var data = getDataAsJson();

  for (var i = 0; i < data.length; i++) {
    if (data[i].id == userId) {
      // Atualizar os valores correspondentes na planilha
      sheet.getRange(i + 2, 2, 1, 4).setValues([[user.name, user.age, user.mobile, user.email]]);
      return ContentService.createTextOutput("Sucesso: Usuário atualizado").setMimeType(ContentService.MimeType.TEXT);
    }
  }

  return ContentService.createTextOutput("Erro: Usuário não encontrado").setMimeType(ContentService.MimeType.TEXT);
}

function deleteUser(e) {
  var userId = e.parameter.userId; // Supondo que o ID do usuário seja passado como um parâmetro
  var data = getDataAsJson();

  for (var i = 0; i < data.length; i++) {
    if (data[i].id == userId) {
      sheet.deleteRow(i + 2);
      return ContentService.createTextOutput("Sucesso: Usuário excluído").setMimeType(ContentService.MimeType.TEXT);
    }
  }

  return ContentService.createTextOutput("Erro: Usuário não encontrado").setMimeType(ContentService.MimeType.TEXT);
}

// Função auxiliar para obter dados da planilha como JSON
function getDataAsJson() {
  var dataRange = sheet.getDataRange();
  var data = dataRange.getValues();
  var headers = data[0];
  var jsonData = [];

  for (var i = 1; i < data.length; i++) {
    var row = {};
    for (var j = 0; j < headers.length; j++) {
      row[headers[j]] = data[i][j];
    }
    jsonData.push(row);
  }

  return jsonData;
}

// Função auxiliar para gerar um ID único
function generateUniqueId(existingIds) {
  var newId = 1;

  while (existingIds.includes(newId)) {
    newId++;
  }

  return newId;
}
  1. Execute e Implemente (Deploy) seu script da Planilha;
  2. Realize o teste no Postman…

RESUMO DE USO NO POSTMAN:

Para realizar testes no Postman com as funções criadas no Google Apps Script, siga estas instruções:

Adicionar um Usuário (POST):

  1. Crie uma nova solicitação no Postman.
  2. Escolha o método POST.
  3. Insira a URL da sua Web App seguida por /exec?action=addUser.
  4. Vá para a guia "Body" e selecione o tipo "raw" com formato JSON.