Changes

m
Updating interlang links (links to translated versions of this page in other languages) triggered by origin English page "Module_Web_Services_API_REST_(developer)" update.
Line 4: Line 4:  
     You can edit links on the English source page : Module_Web_Services_API_REST_(developer) -->
 
     You can edit links on the English source page : Module_Web_Services_API_REST_(developer) -->
 
[[en:Module_Web_Services_API_REST_(developer)]]
 
[[en:Module_Web_Services_API_REST_(developer)]]
 +
[[ja:Module_Web_Services_API_REST_(developer)_JA]]
 +
[[zh:提供REST_API的Web服务模块(开发者)]]
 
<!-- END interlang links -->
 
<!-- END interlang links -->
   Line 40: Line 42:     
'''https://demo.dolibarr.org/api/index.php/explorer'''
 
'''https://demo.dolibarr.org/api/index.php/explorer'''
 +
    
Dans le coin supérieur droit, collez le <token> de l'utilisateur que vous souhaitez utiliser pour appeler l'API, puis cliquez sur le bouton "explorer". Remarque: Le jeton de chaque utilisateur peut être défini sur la page d'enregistrement de l'utilisateur.
 
Dans le coin supérieur droit, collez le <token> de l'utilisateur que vous souhaitez utiliser pour appeler l'API, puis cliquez sur le bouton "explorer". Remarque: Le jeton de chaque utilisateur peut être défini sur la page d'enregistrement de l'utilisateur.
   −
Vous pouvez aussi préférer faire un premier appel au service '''login''' pour obtenir le jeton API. Vous entrez alors la clé pour obtenir la liste des services proposés.
+
Vous pouvez aussi préférer faire un premier appel au service '''login''' pour obtenir le jeton API. Vous aurez en réponse le jeton à utiliser pour obtenir et appeler la liste des services proposés.
   −
Après avoir cliqué sur "Explore", vous devriez voir toutes les actions disponibles avec ce jeton. Si vous n'avez pas beaucoup d'actions, c'est probablement parce que les modules correspondants ne sont pas activés. Si vous voulez voir les factures, vous devez activer le module Factures dans la configuration de Dolibarr. Même chose pour les Produits, les Tiers, etc.
+
Après avoir saisi le jeton et cliqué sur "Explore", vous devriez voir toutes les actions disponibles avec ce jeton. Si vous n'avez pas beaucoup d'actions, c'est probablement parce que les modules correspondants ne sont pas activés. Si vous voulez voir les factures, vous devez activer le module Factures dans la configuration de Dolibarr. Même chose pour les Produits, les Tiers, etc.
    
Vous pouvez ensuite tester directement à partir de cet explorateur n'importe quelle API. Ceci est la solution recommandée pour tester toute API Dolibarr, car toutes les API et paramètres sont documentés ici. À la suite d'un test, vous obtiendrez la réponse, mais également un exemple sur la façon d'appeler l'API à partir de la ligne de commande à l'aide de curl.
 
Vous pouvez ensuite tester directement à partir de cet explorateur n'importe quelle API. Ceci est la solution recommandée pour tester toute API Dolibarr, car toutes les API et paramètres sont documentés ici. À la suite d'un test, vous obtiendrez la réponse, mais également un exemple sur la façon d'appeler l'API à partir de la ligne de commande à l'aide de curl.
Line 55: Line 58:  
Grosso modo, pour utiliser REST, il faut appeler une url du genre suivant <nowiki>http://<mon_serveur>/api/index.php/<action></nowiki><br/>
 
Grosso modo, pour utiliser REST, il faut appeler une url du genre suivant <nowiki>http://<mon_serveur>/api/index.php/<action></nowiki><br/>
 
avec une des 4 méthodes : GET, POST, PUT, DELETE, en remplaçant <action> par l'action sur laquelle vous voulez intervenir. Ex : <nowiki>http://<mon_serveur>/api/index.php/invoices</nowiki>
 
avec une des 4 méthodes : GET, POST, PUT, DELETE, en remplaçant <action> par l'action sur laquelle vous voulez intervenir. Ex : <nowiki>http://<mon_serveur>/api/index.php/invoices</nowiki>
 +
 +
 +
Avant d'utiliser une API, vous devez d'abord obtenir une clé API personnalisée. Vous devez créer un nouvel utilisateur et générer ou définir sa "clé pour l'API".
 +
 +
[[File:Dolibarr user for api.png|400px]]
 +
 +
 +
Vous devrez utiliser cette clé API dans n'importe lequel de vos programmes clients devant appeler une API Dolibarr.
 +
    
Pour ce faire, il existe plusieurs méthodes. Voici un morceau de code opérationnel pour appeler une API, mais il existe également des librairies qui simplifie le travail, telles que phphttpclient.com.
 
Pour ce faire, il existe plusieurs méthodes. Voici un morceau de code opérationnel pour appeler une API, mais il existe également des librairies qui simplifie le travail, telles que phphttpclient.com.
   −
<source lang="php">
+
<syntaxHighlight lang="php">
 
function CallAPI($method, $apikey, $url, $data = false)
 
function CallAPI($method, $apikey, $url, $data = false)
 
{
 
{
Line 102: Line 114:  
     return $result;
 
     return $result;
 
}
 
}
</source>
+
</syntaxHighlight>
    
Ce n'est qu'un exemple, ce n'est pas sécurisé, cela ne prend pas en compte les codes erreurs mais vous pouvez le modifier et l'adapter à vos besoins.
 
Ce n'est qu'un exemple, ce n'est pas sécurisé, cela ne prend pas en compte les codes erreurs mais vous pouvez le modifier et l'adapter à vos besoins.
Line 111: Line 123:  
* $data : string flux au format json. Ce champ est requis pour les appels POST ou PUT.
 
* $data : string flux au format json. Ce champ est requis pour les appels POST ou PUT.
   −
= Exemples =
+
= Exemples avec PHP =
    
Maintenant, quelques exemples opérationnels pour différents cas d'utilisation.<br/>
 
Maintenant, quelques exemples opérationnels pour différents cas d'utilisation.<br/>
Line 120: Line 132:       −
<source lang="php">
+
<syntaxHighlight lang="php">
 
// Récupérer la liste des produits
 
// Récupérer la liste des produits
 
$listProduits = [];
 
$listProduits = [];
Line 133: Line 145:  
}
 
}
 
}
 
}
</source>
+
</syntaxHighlight>
 
Commentaires :
 
Commentaires :
 
* récupérer les 10'000 premiers produits triés par leur id dans la base
 
* récupérer les 10'000 premiers produits triés par leur id dans la base
Line 140: Line 152:       −
<source lang="php">
+
<syntaxHighlight lang="php">
 
// Créer un produit
 
// Créer un produit
 
$ref = "ma_reference_produit_X203ZZ";
 
$ref = "ma_reference_produit_X203ZZ";
Line 149: Line 161:  
$newProductResult = CallAPI("POST", $apiKey, $apiUrl."products", json_encode($newProduct));
 
$newProductResult = CallAPI("POST", $apiKey, $apiUrl."products", json_encode($newProduct));
 
$newProductResult = json_decode($newProductResult, true);
 
$newProductResult = json_decode($newProductResult, true);
</source>
+
</syntaxHighlight>
 
Commentaires :
 
Commentaires :
 
* avant de créer un produit, il peut être sage de vérifier qu'il existe. En reprenant le premier exemple, cela fait :
 
* avant de créer un produit, il peut être sage de vérifier qu'il existe. En reprenant le premier exemple, cela fait :
      −
<source lang="php">
+
<syntaxHighlight lang="php">
 
// ma référence
 
// ma référence
 
$ref = "ma_reference_produit_X203ZZ";
 
$ref = "ma_reference_produit_X203ZZ";
Line 181: Line 193:  
}
 
}
 
}
 
}
</source>
+
</syntaxHighlight>
 
Commentaires :
 
Commentaires :
 
* je regarde si la référence de mon article existe dans le tableau créé dans le premier exemple.
 
* je regarde si la référence de mon article existe dans le tableau créé dans le premier exemple.
Line 189: Line 201:       −
<source lang="php">
+
<syntaxHighlight lang="php">
 
// créer une commande avec 2 articles
 
// créer une commande avec 2 articles
   Line 233: Line 245:  
$newCommandeResult = json_decode($newCommandeResult, true);
 
$newCommandeResult = json_decode($newCommandeResult, true);
 
}
 
}
</source>
+
</syntaxHighlight>
 
Commentaires :
 
Commentaires :
 
* $clientDoliId vaut l'id du client dans la base doli. Soit vous le connaissez, soit vous pouvez le chercher auparavant
 
* $clientDoliId vaut l'id du client dans la base doli. Soit vous le connaissez, soit vous pouvez le chercher auparavant
Line 239: Line 251:       −
<source lang="php">
+
<syntaxHighlight lang="php">
 
// Valider une commande  
 
// Valider une commande  
 
$newCommandeValider = [
 
$newCommandeValider = [
Line 247: Line 259:  
$newCommandeValiderResult = CallAPI("POST", $apiKey, $apiUrl."orders/".$newCommandeResult."/validate", json_encode($newCommandeValider));
 
$newCommandeValiderResult = CallAPI("POST", $apiKey, $apiUrl."orders/".$newCommandeResult."/validate", json_encode($newCommandeValider));
 
$newCommandeValiderResult = json_decode($newCommandeValiderResult, true);
 
$newCommandeValiderResult = json_decode($newCommandeValiderResult, true);
</source>
+
</syntaxHighlight>
 
Commentaires :
 
Commentaires :
 
* on voit dans cet exemple, en avant dernière lignes, on a : $apiUrl."orders/".$newCommandeResult."/validate".<br/>
 
* on voit dans cet exemple, en avant dernière lignes, on a : $apiUrl."orders/".$newCommandeResult."/validate".<br/>
Line 253: Line 265:       −
<source lang="php">
+
<syntaxHighlight lang="php">
 
// chercher si le client existe dans la base
 
// chercher si le client existe dans la base
 
$clientSearch = json_decode(CallAPI("GET", $apiKey, $apiUrl."thirdparties", array(
 
$clientSearch = json_decode(CallAPI("GET", $apiKey, $apiUrl."thirdparties", array(
Line 263: Line 275:  
)
 
)
 
), true);
 
), true);
</source>
+
</syntaxHighlight>
 
Commentaires :
 
Commentaires :
 
* limit => 1 pour ne renvoyer que 1 client
 
* limit => 1 pour ne renvoyer que 1 client
Line 270: Line 282:       −
<source lang="php">
+
<syntaxHighlight lang="php">
 
//client n'existe pas. le crée puis on récupère son id
 
//client n'existe pas. le crée puis on récupère son id
 
$newClient = [
 
$newClient = [
Line 281: Line 293:  
$newClientResult = json_decode($newClientResult, true);
 
$newClientResult = json_decode($newClientResult, true);
 
$clientDoliId = $newClientResult;
 
$clientDoliId = $newClientResult;
</source>
+
</syntaxHighlight>
 
Commentaires :
 
Commentaires :
 
* client => 1 car c'est un client (et pas un fournisseur)
 
* client => 1 car c'est un client (et pas un fournisseur)
 
* code_client => -1 pour que le code client soit généré automatiquement.
 
* code_client => -1 pour que le code client soit généré automatiquement.
 
* on récupère l'id du client dans $clientDoliId
 
* on récupère l'id du client dans $clientDoliId
  −
      
= Développer un nouveau service / sa propre API =
 
= Développer un nouveau service / sa propre API =
Line 302: Line 312:       −
Vous trouverez pas mal d'autres informations dans le code de Dolibarr, en regardant dans '''htdocs/<dossier>/class/api_xxx_class.php'''<br/>
+
Vous trouverez pas mal d'autres informations dans le code de Dolibarr. Vous trouverez tous les fichiers API de Dolibarr sous le nom '''htdocs/<dossier>/class/api_xxx_class.php'''
Ex pour les tiers: htdocs/societe/class/api_thirdparties.class.php pour les tiers.<br/>
+
 
Ex pour les factures: htdocs/compta/facture/class/api_invoices.class.php<br/>
+
= Vidéos sur le sujet =
...
+
<youtube width="200" height="180">WHV22L8enWw</youtube>  
 +
<youtube width="200" height="180">RPUcoweeuR8</youtube>
 +
<youtube width="200" height="180">ZwssM-viocM</youtube>
1,978

edits