Skip to content
This repository has been archived by the owner on Jan 27, 2020. It is now read-only.

Latest commit

 

History

History
47 lines (30 loc) · 2.75 KB

rest_json.md

File metadata and controls

47 lines (30 loc) · 2.75 KB

REST e JSON

Legal, mas o que realmente aconteceu aqui ? Lembra que o Elasticsearch possui uma API RESTful ? Lembra o que é API RESTful ? Lembra o que é REST ? Não ? Que vergonha...

Falando da forma mais simples possível, uma API RESTful é uma API que faz/aceita chamadas REST e REST, representa um conjunto de operações padronizadas que permitem a troca de informação entre sistemas através de simples métodos HTTP.

No exemplo anterior, fizemos uma chamada REST solicitando uma resposta para o nosso Elasticsearch através do método HTTP GET e como retorno à nossa requisição, recebemos uma resposta no formato JSON com algumas informações básicas sobre a nossa instância de Elasticsearch.

Sempre usaremos o formato JSON ao trabalharmos com o Elasticsearch, tanto para enviar requisições, quanto no recebimento das respostas.

Sobre o JSON, imagine que você precisa fazer duas aplicações totalmente distintas se comunicarem entre si. Como fazer essa troca de informação ? O JSON por ser um formato padrão aceito pela maioria das linguagens de programação, pode ser utilizado para garantir que as duas aplicações possam "entender" o que a outra está querendo dizer de forma mais simples e legível se comparada com outros padrões (como o XML, por exemplo). Vamos ver como este padrão funciona ?

{                           # Abertura de sequência.
                            # O padrão é: "campo" ":" e "valor".
                            # Caso hajam vários campos, colocar uma "," no final.
  "nome": "John Will",      # Strings precisam estar entre aspas.
  "idade": 19,              # Inteiros são apresentados sem aspas.
  "deficiente": True,       # Booleanos são bem-vindos.
  "interesses": [ "musica", # Arrays sao representados entre "[]".
            "esportes"]
}                           # Fechamento da sequência. Fim do documento JSON.

Agora que sabemos como criar um documento JSON, vamos entender a sintaxe utilizada para as chamadas REST:

curl -X<VERB> '<PROTOCOLO>://<HOST>:<PORTA>/<PATH>?<QUERY_STRING>' -d '<BODY>'

O curl é uma ferramenta para transferência de dados através de uma URL. Usaremos ela para efetuarmos nossas requisições ao Elasticsearch. Segue a explicação para os demais campos:

VERB -> GET, POST, PUT, DELETE.

PROTOCOLO -> http, https...

HOST -> Servidor do Elasticsearch.

PORTA -> Porta do Elasticsearch (9200 é a porta padrão).

PATH -> Aonde você quer pesquisar, atualizar, incluir ou deletar (qual o index, type e document id ?).

QUERY_STRING -> A pesquisa propriamente dita.

BODY -> O documento JSON que você quer enviar ou utilizar como parâmetro de pesquisa.

Próximo: Index, Type e Document ?