Concrete Logo
Hamburger button

Como usar uma planilha como backend JSON

  • Blog
  • 10 de Julho de 2014
Share

Testando algumas hipóteses para o nosso novo site, chegamos  a um jeito bem simples de usar uma planilha (Google Spreadsheet) como backend JSON, a partir do seu Google Drive. Quer aprender? Vamos lá!

Primeiro, é só criar uma planilha no Google Drive nomeando-a como preferir. Em seguida, defina as colunas. Para esse exemplo, vamos usar dados disponíveis no Wikipedia sobre os celulares mais vendidos, mais especificamente as colunas referentes a Manufacturer, Model e Units sold, utilizando sempre a primeira linha da planilha como o nome das colunas.

Assim, teremos uma planilha com essa cara aqui:

Com os dados já na planilha, vamos publicá-la na Web (File -> Publish to the web…) siga o wizard default e assim que lhe for apresentado o link do documento (Document link), copie-o, pois será necessário. Ele terá o seguinte formato:

https://docs.google.com/spreadsheets/d/1SmFALz5tOP8baYovjZ3h494krZf-QqBpFsYcXMtogtk/pubhtml

Com isso em mãos, já podemos acessar o nosso backend JSON 🙂

Para isso, precisaremos da chave do documento que está na própria URL, mais precisamente entre ‘d/’ e ‘/pubhtml’. Sendo assim, para a URL acima a chave é:

1SmFALz5tOP8baYovjZ3h494krZf-QqBpFsYcXMtogtk

A URL para o backend JSON da planilha é nesse formato aqui:

https://spreadsheets.google.com/feeds/list/<chave-documento>/od6/public/values?alt=json

Agora é só substituir <chave-documento> pela chave do seu documento, tendo assim uma URL:

https://spreadsheets.google.com/feeds/list/1SmFALz5tOP8baYovjZ3h494krZf-QqBpFsYcXMtogtk/od6/public/values?alt=json

PS: od6 e default por padrão remetem à primeira planilha do seu workbook. há casos de planilhas em que od6 retorna erro de ‘grid_id’, então pode ser que você precise usar default em seu lugar, ou no caso, é claro, de estar usando mais de uma planilha, você poderá utilizar o índice da mesma para acessa-la, sempre começando de 1 🙂

Acesse-a no seu browser e verá o resultado que desejamos:

Agora é só consumi-la 🙂

HTML:

Javascript(e alguns recursos do Framework jQuery):

Segue aqui um exemplo live no JSFiddle: https://jsfiddle.net/jfelipesp/eg4PB/

Agora vamos introduzir mais uma feature disponível nesse backend JSON da planilha que são uma mão na roda: os filtros sobre o conteúdo da planilha.

Podemos buscar só o que é referente a Nokia, ou seja, linhas nas quais fabricante=nokia.

Esse filtro é identificado na URL pelo paramêtro ‘sq’. Então, teríamos: sq=fabricante=nokia.

Para evitar problemas, vamos encodar o valor de ‘sq’, o que nos dará: sq=fabricante%3Dnokia.

Basta agora acrescentar isso à sequência de parâmetro da URL

https://spreadsheets.google.com/feeds/list/1SmFALz5tOP8baYovjZ3h494krZf-QqBpFsYcXMtogtk/od6/public/values?alt=json&sq=fabricante%3Dnokia

Os filtros podem também ser compostos. Por exemplo, vamos buscar todos os Nokias nas quais a venda tenha sido maior que 10(milhões).

fabricante=nokia and unidades > 10 ou após encode, fabricante%3Dnokia%20and%20unidades%20%3E%2010

Nos dando a seguinte URL:

https://spreadsheets.google.com/feeds/list/1SmFALz5tOP8baYovjZ3h494krZf-QqBpFsYcXMtogtk/od6/public/values?alt=json&sq=fabricante%3Dnokia%20and%20unidades%20%3E%2010

Prontinho 🙂 Divirta-se!

Qualquer dúvida ou comentário, só deixar nos campos aqui embaixo.