Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
fr:protocole_json [2014/04/23 13:50]
127.0.0.1 external edit
fr:protocole_json [2021/09/16 21:38] (current)
mifrey [Dans l'url avec HTTP GET]
Line 1: Line 1:
 ====== Protocole pour webservice Calaos ====== ====== Protocole pour webservice Calaos ======
  
-La centrale propose une protocole de communication grâce à des requêtes HTTP. Les données échangés sont au format [[http://fr.wikipedia.org/wiki/Json|JSON]].+La centrale propose un protocole de communication grâce à des requêtes HTTP. Les données échangées sont au format [[http://fr.wikipedia.org/wiki/Json|JSON]].
  
 Le Calaos Network propose également ce type de service, en particulier pour les applications clientes et l'authentification des utilisateurs. Le Calaos Network propose également ce type de service, en particulier pour les applications clientes et l'authentification des utilisateurs.
Line 13: Line 13:
 Les requêtes sur la centrale se font grâce à l'url suivante: Les requêtes sur la centrale se font grâce à l'url suivante:
  
-  https://ip_centrale/api.php+  https://calaos_server_ip/api.php
      
 ===== Effectuer des tests ===== ===== Effectuer des tests =====
  
 +==== Wget ====
 Il est possible d'effectuer des requêtes de tests grâce à l'outil [[http://fr.wikipedia.org/wiki/Wget|Wget]] en ligne de commande. Il est possible d'effectuer des requêtes de tests grâce à l'outil [[http://fr.wikipedia.org/wiki/Wget|Wget]] en ligne de commande.
- 
-==== Exemple ==== 
  
 Les données à envoyer sont au format JSON dans le fichier //query.json// et le résultat se retrouvera dans //result.json//. Les données à envoyer sont au format JSON dans le fichier //query.json// et le résultat se retrouvera dans //result.json//.
  
-  wget --no-check-certificate --post-file query.json --output-document result.json https://addresse_ip/api.php+  wget --no-check-certificate --post-file query.json --output-document result.json https://calaos_server_ip/api.php 
 +   
 +   
 +==== Dans l'url avec HTTP GET ==== 
 + 
 +Les requêtes doivent se faire avec HTTP POST avec Calaos v2.  Calaos v3 supporte aussi HTTP GET et donc les requêtes peuvent être directement passées dans l'url. 
 + 
 +Exemple: 
 +  * Avoir toute la config : https://calaos_server_ip/api?cn_user=XXX&cn_pass=XXX&action=get_home 
 +  * Avoir l'image d'une camera : https://calaos_server_ip/api?cn_user=XXX&cn_pass=XXX&action=camera&type=get_picture&id=input_57_output_32 
 +  * Activer une sortie : https://calaos_server_ip/api?cn_user=XXX&cn_pass=XXX&action=set_state&id=output_7&value=true 
 +  * Activer une variable interne : https://calaos_server_ip/api?cn_user=XXX&cn_pass=XXX&action=set_state&id=intern_4&value=true 
 +  * Lire une variable : https://calaos_server_ip/api?cn_user=XXX&cn_pass=XXX&action=get_state&items=output_21,output_25 
 + 
 +Cela permet à un système externe ne supportant que HTTP GET de facilement communiquer avec Calaos. 
 +==== Page HTML ==== 
 + 
 +Calaos v3 inclu une page HTML permettant de tester des requêtes POST et Websocket. Elle permet de facilement vérifier le format des données JSON à envoyer. 
 + 
 +Il faut d'abord activer le mode debug avec la commande : 
 +<code> 
 +calaos_config set debug_enabled true 
 +</code> 
 +ou l'ajouter directement dans le fichier ///etc/calaos/local_config.xml//
 + 
 +On peut ensuite y accéder via: 
 +https://calaos_server_ip/debug/ ou http://calaos_server_ip:5454/debug/
 + 
 +{{ :fr:api_debug_html.png?nolink&600 |}} 
 + 
 +==== Utiliser l'API avec d'autres languages ==== 
 + 
 +  * [[json_python2|Python 2]] 
 +  * [[json_python3|Python 3]]
  
 ===== API Calaos Network ===== ===== API Calaos Network =====
Line 248: Line 280:
       "cn_user": "mail@example.com"       "cn_user": "mail@example.com"
   }   }
 +Ceci fonctionne aussi avec les scenarios cependant syntaxiquement le type reste "output" 
  
 De la même manière on peut force la valeur d'une entrée avec De la même manière on peut force la valeur d'une entrée avec