Hello,
regarde un peu plus haut dans le thread, il me semble que parle d’un problème avec certains fichiers qui ne sont pas effacés lors d’une maj et cela génère des bugs au niveau de rest
Merci @chag, mais j’ai bien lu lors de la mise à niveau qu’il y avait des fichiers à supprimer à la main (!) et les ai donc supprimés.
Le lien que tu me passes les mentionne et d’autres, et le doute est permis sur ce qu’il faut réellement virer.
D’où cette nouvelle question, avant de faire n’importe quoi, faut-il supprimer ces fichiers (si pas déjà fait) ?
- compta/facture/class/api_invoice.class.php
- compta/facture/class/api_deprecated_invoice.class.php
- compta/facture/class/api_invoices.class.php
- \societe\class\api_contact.class.php
- \societe\class\api_thirdparty.class.php
- \categories\class\api_category.class.php
- \product\class\api_product.class.php
OK, sans attendre la réponse, j’ai dégagé ces fichiers (certains déjà précédemment) et à présent ça fonctionne.
Laborieux !..
Sorry, j’étais sur autre chose.
Il faut supprimer tous les fichiers qui ne sont pas dans l’archive de la 6.0.3.
Je ne sais pas pourquoi le bug a été fermé. Si tu veux rajouter un commentaire sur github et rouvrir le bug, n’hésite pas
Bonjour,
Je suis la documentation concernant l’API REST et j’ai créé l’api_key via l’édition du user, car en utilisant le login et le password sur l’URL :
http://<mon serveur>/api/index.php/login?login=<mon login utilisateur>&password=yourpassword
J’ai juste une erreur 404.
J’ai essayé d’atteindre l’explorer, pareil, erreur 404. Alors, bien sûr, en utilisant :
http://<mon serveur>/api/admin/explorer.php
Ca m’affiche la liste de ce qui est disponible avec les modules que j’ai activé (product par ex.), mais ce n’est pas la bonne voie…
De plus, si j’essaye n’importe laquelle des requêtes présentées, pareil : erreur 404.
J’ai lu ailleurs sur le forum que passer en PHP 5.6 résolvait les problèmes, mais non, ça n’a rien changé.
- Dolibarr 5.0.7 et Dolibarr 6.0.3
- Serveur Nginx
- Synology
Personne ?
J’ai essayé :
https://....url..../index.php/explorer/resources.json
Nada, 404.
J’édite le fichier index.php de l’api, et lorsque je vais sur :
http://___url___/htdocs/api/index.php
Mes messages débiles apparaissent bien dans le log, mais si j’ajoute explorer, ça ne fonctionne pas, il ne rentre pas la condition.
// EDIT :
En cas d’utilisation de index.php/explorer, il ne rentre même pas dans le fichier index.php !
Bonjour,
Comme c’est mentionné dans ce bug, il faut supprimer les fichiers, pour ma part c’est tombé en marche ensuite :
- DOL_DOCUMENT_ROOT.’/compta/facture/class/api_invoice.class.php’,
- DOL_DOCUMENT_ROOT.’/commande/class/api_commande.class.php’,
- DOL_DOCUMENT_ROOT.’/user/class/api_user.class.php’,
- DOL_DOCUMENT_ROOT.’/product/class/api_product.class.php’,
- DOL_DOCUMENT_ROOT.’/societe/class/api_contact.class.php’,
- DOL_DOCUMENT_ROOT.’/societe/class/api_thirdparty.class.php’
Non, supprimer ces fichiers ne change rien.
Le problème est le rewriting d’URL sur Nginx. Je n’ai aucun souci avec Apache 2.2.
Je pense essayer ceci dans le vhost que j’utilise (à adapter, je pense) :
# REST API support
location /public/api {
if ( !-e $request_filename) {
rewrite ^.* /public/api/index.php last;
}
}
Trouvé sur le Github de Dolibarr : ICI
Nginx servant de reverse proxy, il bloque tout si on ne lui a pas dit de faire le contraire.
Bon, dès que mon patron aura le temps de me filer les accès root…
Bonjour à tous.
Je me suis lancé depuis peu dans la découverte de l’API REST, et grâce à la doc de chag et vos nombreux posts j’ai pas mal avancé sur la compréhension et mes tests (merci au passage à vous tous ).
J’utilise depuis pas mal de temps dolibarr, donc plusieurs upgrades de versions majeures.
Lors de l’utilisation de REST, j’ai rencontré des problèmes résolus par la suppression des fichiers :
DOL_DOCUMENT_ROOT.’/compta/facture/class/api_invoice.class.php’,
DOL_DOCUMENT_ROOT.’/commande/class/api_commande.class.php’,
DOL_DOCUMENT_ROOT.’/user/class/api_user.class.php’,
DOL_DOCUMENT_ROOT.’/product/class/api_product.class.php’,
DOL_DOCUMENT_ROOT.’/societe/class/api_contact.class.php’,
DOL_DOCUMENT_ROOT.’/societe/class/api_thirdparty.class.php’
Mais aussi : j’ai vidé tout le contenu du répertoire DOL_DOCUMENT_ROOT.’/api/’ que j’ai restauré par uniquement les fichiers d’installation de la version dolibarr-6.0.4
Tout fonctionne à présent correctement dans l’explorer, sauf qu’il me manque plusieurs fonctions comme les factures, produits, tiers, … (Je précise que les modules manquants sont bien activés).
Voici la liste exhaustive de ce qu’il me reste :
- root
- bankaccounts
- categories
- dictionarycountries
- dictionaryevents
- dictionaryextrafields
- dictionarytowns
- documents
- login
- projects
- proposals
- status
- tasks
- users
Une idée pour m’aider ?
Merci par avance pour votre contribution.
Je relance à nouveau ma demande ci-dessus… (désolé si je parais insistant )
…mais je suis toujours dans l’impasse… et votre aide me serait très utile.
merci d’avance.
Bonjour,
Je teste actuellement les API REST avec une version 6.0.4
Je ne vois pas le createfromorder dans l’explorer e t /api/index.php/createfromorder/12 m’indique API not found (failed to include API file)
Cordialement
Denis
Bonjour merci pour le retour et désolé de ma réponse aussi tardive. J’ai changé de boite entre temps mais j’intègre de nouveau du dolibarr
Effectivement c’était tout à fait cela!
Bonjour,
Pour mes tests, je suis passé à la version 7 et les API REST ont considérablement été modifiés,
J’ai trouvé mon bonheur et toutes les interfaces utilisées ont fonctionné.
J’ai une suggestion. Serait-il possible d’obtenir un numéro de tiers calculée en fonction de la date de création qui serait passée lors de la demande de création.
Je continue mes tests; tiers client, commandes, factures et paiements.
Cordialement
Bonjour à tous,
Je cherche à faire une requête sur des produits via l’api en les filtrant sur les extrafields de mon produit.
Du coup j’ai un doute sur le fait que ce soir possible via l’api car si j’ai bien compris les sqlfilters permettent de filtrer dans la même table que l’entité mais pas vers une autre table.
Bonjour,
Je continue l’exploration de l’API REST avec lequel je crée à la volée depuis une autre application WEB différents objets.
Je crée des tiers, des contacts, des commandes, des factures à partir des commandes puis je paie ces factures
Je modifie les statuts de chaque objet comme je veux.
REMARQUES :
[ul]
[li]Le document PDF de la commande n’est pas créé avec celle-ci[/li]
[li]Le document de la facture est créé mais en anglais; je dois utiliser l’api buiddoc avec l’option fr_FR[/li]
[/ul]Je ne comprends pas comment utiliser l’API /documents/download;
Je voudrais visualiser ou charger le document à l’aide d’un bouton. Si quelqu’un l’utilise !
Merci
Denis
J’avais fait ça https://www.dolistore.com/fr/modules/661-API-cr--er-les-documents-via-URL.html il y a longtemps a voir si cela peut aider
Merci,
Je vais essayer dans la semaine
Bonjour,
Ce module est fait pour générer un document. Je fais déjà cela avec l’API REST.
Je veux accéder à mon document PDF, pour visualiser ou télécharger, à l’aide d’une application externe via une API.
Cordialement
Denis
Votre code peut se baser sur cela pour telecharger
$doc = CallAPI("GET", "/documents/download?module_part=$type&original_file=$ref/$ref.pdf", $entity, "");
$doc = json_decode($doc, true);
$decoded = base64_decode($doc[content]);
$upload_dir = wp_upload_dir();
$file=$upload_dir['basedir']."/docs/".$ID."/".$doc[filename];
file_put_contents($file, $decoded);
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
unlink($file);
}
Merci,
Je teste et je reviens vers vous