Dernière mise à jour le .

Kinto permet de déployer un backend de stocakge accessible à travers une api HTTP, pour stocker et accéder à des données dont la structure est générée dynamiquement. Kinto propose de stocker ces données dans PostgreSQL, Redis ou en RAM.

Voici un exemple de manipulation de Kinto (https://github.com/Kinto/kinto):

echo '{"data": {"description": "Write a tutorial explaining Kinto", "status": "todo"}}' | http POST 
https://kinto.dev.mozaws.net/v1/buckets/default/collections/tasks/records -v --auth 'token:my-secret'

Cette requête HTTP va automatiquement créer une collection de données nommées tasks/records comprenant une propriété description de type String et une propriété status de type String.

On peut récupérer l'objet créé de cette manière:

http GET https://kinto.dev.mozaws.net/v1/buckets/default/collections/tasks/records -v --auth 'token:my-secret'

HTTP/1.1 200 OK
Access-Control-Expose-Headers: Backoff, Retry-After, Alert, Next-Page, Total-Records, Last-Modified, ETag
Backoff: 10
Connection: keep-alive
Content-Length: 152
Content-Type: application/json; charset=UTF-8
Date: Mon, 06 Jul 2015 08:40:14 GMT
ETag: "1436171996916"
Last-Modified: Mon, 06 Jul 2015 08:39:56 GMT
Server: nginx/1.4.6 (Ubuntu)
Total-Records: 1

{
      "data": [
          {
              "description": "Write a tutorial explaining Kinto",
              "id": "a5f490b2-218e-4d71-ac5a-f046ae285c55",
              "last_modified": 1436171996916,
              "status": "todo"
          }
      ]
}

Kinto ajoute à cela une couche de permissions et de gestion de la synchronisation des données (à l'aide de token par exemple).

Un bon exemple de ce que Kinto permet de faire est de tester une application d'administration d'un serveur kinto : https://kinto.github.io/kinto-admin/

Ce que Kinto ne permet pas de faire : écrire des processus métier de traitement des données ou encore configurer des contrôles d'intégrité des données.

Conclusion : Kinto est un serveur de données que l'on manipule à travers une api HTTP qui comprend des couches comme la gestion des permissions, de synchronisation, etc. En somme une base de données gonflée avec des fonctionnalités manipulable à travers une api HTTP.