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 68: Line 70:  
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 112: 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 121: 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 130: 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 143: 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 150: 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 159: 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 191: 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 199: Line 201:       −
<source lang="php">
+
<syntaxHighlight lang="php">
 
// créer une commande avec 2 articles
 
// créer une commande avec 2 articles
   Line 243: 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 249: Line 251:       −
<source lang="php">
+
<syntaxHighlight lang="php">
 
// Valider une commande  
 
// Valider une commande  
 
$newCommandeValider = [
 
$newCommandeValider = [
Line 257: 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 263: 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 273: 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 280: 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 291: 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 312: 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,977

edits