Documentation en ligne

Stockage de données JSON

Ce connecteur permet d'utiliser Passerelle pour enregistrer et récupérer des données JSON arbitraires.

Ajout d'informations

Un POST d'un objet JSON sur l'adresse …/data/create/ du connecteur stocke l'objet et fournit en retour l'identifiant qui lui a été attribué; ex:

$ curl -X POST \
       -d '{"nom": "Foo Bar 2000", "numero": "123456789"}' \
       https:/passerelle.example.net/jsondatastore/associations/data/create
{"text": "Foo Bar 2000 (123456789)",
 "id": "a53cdd0b99ed43a4bf7ddc102f919948",
 "err": 0}

Dans le paramétrage du connecteur, il est possible de paramétrer le modèle à appliquer pour la valeur de la clé "text", dans cet exemple on aura ainsi mis {{nom}} ({{numero}}).

Récupération de données

Un appel à l'adresse …/data/<identifiant>/ retourne l'objet enregistré :

$ curl https:/passerelle.example.net/jsondatastore/associations/data/a53cdd0b99ed43a4bf7ddc102f919948/
{
 "content": {
   "nom": "Foo Bar 2000",
   "numero": "123456789" 
 },
 "text": "Foo Bar 2000 (123456789)",
 "id": "a53cdd0b99ed43a4bf7ddc102f919948",
 "err": 0
}

Récupération de l'ensemble des données

L'adresse …/data/ seule permet de récupérer toutes les donneés :

$ curl https:/passerelle.example.net/jsondatastore/associations/data/
{
 "data": [
  {
   "content": {
     "nom": "Foo Bar 2000",
     "numero": "123456789" 
   },
   "text": "Foo Bar 2000 (123456789)",
   "id": "a53cdd0b99ed43a4bf7ddc102f919948" 
  },
  {
   "content": {
     "nom": "Bzze",
     "numero": "0234" 
   },
   "text": "Bzze (0234)",
   "id": "1ad86d329ec54ea6b37c9b22473e1395" 
  }
 ],
 "err": 0
}

Modification de données

Un POST à la même adresse, …/data/<identifiant>/, permet d'actualiser les données :

$ curl -X POST \
       -d '{"nom": "Foo Bar 2001", "numero": "123456789"}' \
       https:/passerelle.example.net/jsondatastore/associations/data/a53cdd0b99ed43a4bf7ddc102f919948/
{
 "content": {
   "nom": "Foo Bar 2001",
   "numero": "123456789" 
 },
 "text": "Foo Bar 2001 (123456789)",
 "id": "a53cdd0b99ed43a4bf7ddc102f919948",
 "err": 0
}

Suppression de données

Un POST à l'adresse …/data/<identifiant>/delete permet de supprimer un objet :

$ curl -X POST \
       https:/passerelle.example.net/jsondatastore/associations/data/a53cdd0b99ed43a4bf7ddc102f919948/delete
{"err": 0}

Possiiblité de lier les données à un compte

Les différents appels acceptent un paramètre name_id qui permet d'associer aux requêtes l'identifiant du « propriétaire » de l'objet JSON.

# enregistrement
$ curl -X POST \
       -d '{"nom": "Foo Bar 2000", "numero": "123456789"}' \
       https:/passerelle.example.net/jsondatastore/associations/data/create?name_id=AZERTY
{"text": "Foo Bar 2000 (123456789)",
 "id": "a53cdd0b99ed43a4bf7ddc102f919948",
 "err": 0}

# liste
$ curl https:/passerelle.example.net/jsondatastore/associations/data/?name_id=AZERTY
{
 "data": [
  {
   "content": {
     "nom": "Foo Bar 2000",
     "numero": "123456789" 
   },
   "text": "Foo Bar 2000 (123456789)",
   "id": "a53cdd0b99ed43a4bf7ddc102f919948" 
  }
 ],
 "err": 0
}

# liste pour un autre identifiant
$ curl https:/passerelle.example.net/jsondatastore/associations/data/?name_id=QSDFGH
{
 "data": [],
 "err": 0
}

# récupération
$ curl https:/passerelle.example.net/jsondatastore/associations/data/a53cdd0b99ed43a4bf7ddc102f919948/?name_id=AZERTY
{
 "content": {
   "nom": "Foo Bar 2000",
   "numero": "123456789" 
 },
 "text": "Foo Bar 2000 (123456789)",
 "id": "a53cdd0b99ed43a4bf7ddc102f919948",
 "err": 0
}

# récupération avec un autre identifiant
$ curl https:/passerelle.example.net/jsondatastore/associations/data/a53cdd0b99ed43a4bf7ddc102f919948/?name_id=QSDFGH
{
 "err_class": "passerelle.apps.jsondatastore.models.DoesNotExist",
 "err_desc": "JsonData matching query does not exist.",
 "data": null,
 "err": 1
}

Dernière mise à jour le 16 octobre 2018 06:01 — Éditer