Spécification API

L'API du webservice réside à une url de base prédéfinie pour le webservice (/api par exemple).

L'API est spécifiée pour le contrôle d'un robot, on pourra donc gérer deux robots :

  • soit en lançant deux API en spécifiant pour chacune le robot contrôlé (ID + serveur de données)
  • soit en modifiant l'url de base pour prendre en premier paramètre l'ID du robot en question

Dans tous les cas, les points d'entrée API peuvent retourner un code d'erreur 504 (gateway timeout) dans le cas où le serveur de données du robot concerné n'est pas disponible.

Gestion des propriétés [x]

  • Lister les propriétés : GET /properties
    • Code de retour :
      • 200 si tout s'est bien passé
    • Retour : { “properties”: { <propriété> : <valeur> } }
  • Modifier une propriété : PATCH /properties
    • Paramètres : { “name”: <propriété>, “value”: <valeur> }
    • Code de retour :
      • 200 si tout s'est bien passé
      • 400 si les paramètres sont invalides
      • 404 si la propriété n'existe pas
    • Retour : { “error”: { <propriété> : <message d'erreur> } } en cas d'erreur

Gestion de l'IA [ ]

  • Lancer l'IA : POST /ai
    • Paramètres : aucun
    • Code de retour :
      • 200 si tout s'est bien passé
      • 412 si l'IA est déjà lancée
      • 410 si l'IA ne fonctionne pas
    • Retour : { “error” : <message d'erreur> } en cas d'erreur
  • Arrêter un simulateur : DELETE /ai
    • Paramètres : aucun
    • Code de retour :
      • 200 si tout s'est bien passé
      • 412 si l'IA n'est pas lancée
    • Retour : { “error” : <message d'erreur> } en cas d'erreur

Gestion des simulateurs [x]

  • Lister les simulateurs : GET /simulators
    • Retour : { “simulators”: <liste des simulateurs> }
  • Lancer un simulateur : POST /simulators/<simulateur>
    • Paramètres : aucun
    • Code de retour :
      • 200 si tout s'est bien passé
      • 412 si le simulator est déjà lancé
      • 404 si le simulateur n'existe pas
    • Retour : { “error” : <message d'erreur> } en cas d'erreur
  • Arrêter un simulateur : DELETE /simulators/<simulateur>
    • Paramètres : aucun
    • Code de retour :
      • 200 si tout s'est bien passé
      • 412 si le simulator n'est pas lancé
      • 404 si le simulateur n'existe pas
    • Retour : { “error” : <message d'erreur> } en cas d'erreur