Fondamentaux
Rappel : JSON
JSON est un format léger d'échange de donnée. Il est facile à lire ou à écrire pour des humains. Il est aisément analysable ou générable par des machines.
JSON se base sur deux structures:
Une collection de couples nom/valeur (aussi appelé
objet
). Formalisé en JSON par une { à gauche et une } à droite. Chaque clé est suivi de : et les couples clé/valeur sont séparés par ,Une liste de valeurs ordonnées (aussi appelé tableau). Formalisé en JSON par une [ à gauche et une ] à droite. Les valeurs sont séparés par des ,
Une valeur peut être soit une chaîne de caractères entre guillemets, soit un nombre, soit true ou false ou null, soit un objet soit un tableau. Ces structures peuvent être imbriquées.
Exemple : Exemple d'un formatage en JSON
{ "id": 66,
"value": true,
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
Rappel : API REST
Application Programming Interface REpresentational State Transfer
Les API REST sont basées sur HTTP. Un client lance une requête HTTP, et le serveur renvoie une réponse. Les réponses du serveur pour les API REST peuvent être délivrées dans de multiples formats. JSON (JavaScript Object Notation) est utilisé par Elasticsearch, mais XML, CSV, ou même RSS sont aussi valables.
Ce sont des méthodes qui définissent les types de requêtes que le client peut effectuer :
GET : permet de récuperer des informations
PUT : Permet de stocker des information
POST : permet de mettre a jours de informations
DELETE : permet de supprimer des informations
A l'entête de la requête un corps peut être accolé, ce qui permet de transmettre les informations nécessaires à l’exécution de l'action demandée. Là encore, Elasticsearch utilise JSON.
Fondamental : URL type de l'API Elasticsearch
Ellasticsearch offre une API REST permettant d'effectuer tous les types d'opération. Il support les méthodes HTTP GET, PUT, POST et DELETE.
Exemple de syntaxe d'appel de l'API REST lorsque Elasticsearch est lancé en local (depuis un navigateur, une requête Curl, wget, ...)
http://localhost:9200/[index]/[type]/[id]/[action]
Index : Nom de l'index
Type : Nom du type du document
Id : ID du document
Action : Action à effectuer