• Authentification

L'authentification auprès de l'API se fait à l'aide d'un token unique qui vous a été communiqué.

Ce dernier doit IMPERATIVEMENT être fourni lors de CHAQUE requête dans l'en-tête HTTP "Authorization".

Toutes les données sont renvoyées au format JSON. Elles se décomposent en des données d'en-têtes telles que le temps d'exécution de la requête ou encore le nombre de résultats, et les données elle-même, contenues dans le noeud "data".

Exemple d'en-tête : { "code": 200, "api": "Location-Gardemeuble API", "version": 2, "datetime": "2024-11-21 05:12:34", "execution": 10, "results": 0, "data": [] }

Par ailleurs, chaque entité gm / box possède un nœud "api" contenant les URL et la méthode pour respectivement :
• Lister les boxes du centre
• Ajouter un nouveau box au centre
• Modifier ce box
• Supprimer ce box

Exemple : { "api": { "list": { "method": "GET", "url": "https://api.location-gardemeuble.fr/gm/1/box" }, "add": { "method": "POST", "url": "https://api.location-gardemeuble.fr/gm/1/box" }, "edit": { "method": "PATCH", "url": "https://api.location-gardemeuble.fr/gm/1/box/2" }, "delete": { "method": "DELETE", "url": "https://api.location-gardemeuble.fr/gm/1/box/2" } } }

Enfin, si une erreur se produit lors de la requête, un court message d'erreur sera contenu dans le noeud "error".
Le noeud "data" sera absent en cas d'erreur, remplacé par le noeud "error".


• Entité GM

TODO

• Entité Box

{ "id": 2, "gm_id": 1, "type": 6, "size": 3, "unit": "m2", "services": [ "Box propre", "Cadenas fourni", "Pas cher", "2m de haut" ], "promo": "Ceci est une promotion !", "price": { "normal": 30, "strike": 40, "show": true }, "available": 0, "link": "" }

int id : Identifiant unique du box

int gm_id : Identifiant unique du centre

int type :
  0 : Box
  1 : Parking
  2 : Box RDC
  3 : Box Etage
  4 : Box Accès Direct
  5 : Stockage au sol
  6 : Stockage bateau
  7 : Carton
  8 : Box mobile
  9 : Autre Volume

float size : Taille dans l'unité unit

string unit :
  "m2" : Mètres carrés
  "m3" : Mètres cubes

array[] services : Tableau de strings (max 4, chaine vide autorisée)

string promo : Promotion en cours (chaine vide autorisée)

float price.normal : Prix affiché

float price.strike : Prix barré (prix normal affiché si 0)

bool price.show :
  false : Prix masqué (affiche "Prix sur devis")
  true : Prix affiché

int available : Quantité disponible (box invisible si < 1)

string link : Lien vers la page du box sur votre site
  Redirige vers votre site lors du clic sur le box, laisser vide si vous utilisez le système de réservation intégré à LGM


• Afficher les centres

GET https://api.location-gardemeuble.fr/gm

Retour : Liste de vos GM (contient aussi les URL pour récupérer les box)
[ { "id": 1, "name": "GM Test", "url": "https://www.location-gardemeuble.fr/box-garde-meuble-testheim-test-550", "address": "55 rue de test", "city": "99999 Testheim", "api": { "list": { "method": "GET", "url": "https://api.location-gardemeuble.fr/gm/1/box" }, "add": { "method": "POST", "url": "https://api.location-gardemeuble.fr/gm/1/box" }, "edit": { "method": "PATCH", "url": "https://api.location-gardemeuble.fr/gm/1/box/2" }, "delete": { "method": "DELETE", "url": "https://api.location-gardemeuble.fr/gm/1/box/2" } } }, { "id": 2, "name": "GM Debug", "api": { "list": { "method": "GET", "url": "https://api.location-gardemeuble.fr/gm/2/box" }, "add": { "method": "POST", "url": "https://api.location-gardemeuble.fr/gm/2/box" }, "edit": { "method": "PATCH", "url": "https://api.location-gardemeuble.fr/gm/2/box/3" }, "delete": { "method": "DELETE", "url": "https://api.location-gardemeuble.fr/gm/2/box/3" } } } ]

• Afficher les détails d'un centre

GET https://api.location-gardemeuble.fr/gm/[id]

Paramètres d'URL:
 • int id : Identifiant unique du GM


• Afficher les box d'un centre

GET https://api.location-gardemeuble.fr/gm/[id]/box

Paramètres d'URL:
 • int id : Identifiant unique du GM

Retour :
 • Tableau d'entités BOX


• Afficher les détails d'un box

GET https://api.location-gardemeuble.fr/gm/[id]/box/[box_id]

Paramètres d'URL:
 • int id : Identifiant unique du GM
 • int box_id : Identifiant unique du BOX

Retour :
 • Entité BOX


• Ajouter un box

POST https://api.location-gardemeuble.fr/gm/[id]/box

Paramètres d'URL:
 • int id : Identifiant unique du GM

Body :
 • Données complètes du box à créer, au format JSON, ex :

{ "type": 6, "size": 3, "unit": "m2", "services": [ "Box propre", "Cadenas fourni", "Pas cher", "2m de haut" ], "promo": "Ceci est une promotion !", "price": { "normal": 30, "strike": 40, "show": true }, "available": 0, "link": "" }

Attention, il faut renseigner toutes les données d'un box lors de sa création, même si certaines peuvent être laissées vides, sauf :
  • Le noeud "id" ne doit pas être renseigné, il sera généré automatiquement.
  • Le noeud "gm_id" ne doit pas être renseigné, il sera remplacé automatiquement par l'id du centre fourni dans l'URL.

Retour :
 • Entité BOX créé


• Modifier un box

PATCH https://api.location-gardemeuble.fr/gm/[id]/box/[box_id]

Paramètres d'URL:
 • int id : Identifiant unique du GM
 • int box_id : Identifiant unique du BOX

Body :
 • Données à modifier au format JSON, ex :
{ "size": 4, "type": 0, "unit": "m2" }

Retour :
 • Entité BOX modifiée


• Supprimer un box

DELETE https://api.location-gardemeuble.fr/gm/[id]/box/[box_id]

Paramètres d'URL:
 • int id : Identifiant unique du GM
 • int box_id : Identifiant unique du BOX

Retour :
 • Entité BOX supprimée