Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Documentation API REST

Documentation API REST il y a 1 an 8 mois #87474

Bonjour,
Tout d'abord merci pour toutes infos très utiles.
Je suis un nouvel utilisateur de Dolibarr, et je cherche à le connecter à une autre appli qui est actuellement sur le même serveur mais qui à terme ne le sera plus.
J'utilise donc les APi rest et grâce à ce forum je commence à comprendre comment cela fonctionne.
A l'heure actuellei j'ai réussi à créer des contacts, des tiers, des produits, des commandes et sa validation, création d'une facture avec les mêmes données d'entrée que la commande.

En revanche, je n'arrive pas à valider cette facture. J'ai une erreur 404 not found routes.php:458 at route stage.

Y-a-t'il un paramètre à ajouter quelque part quand on ajoute une fonction à api_invoices.class.php afin qu'il la reconnaisse ? Dans L'APi explorer, elle est bien présente.
Ou y aurait-il une subtilité que j'aurais manqué ? Car en gros c'est un copier-coller d'une validation de commande... et je ne comprends pas pourquoi la validation d'une commande fonctionne très bien mais pas celle d'une facture.

Si quelqu'un aurait une piste sur le paramètre bloquant...
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 8 mois #87499

Je me réponds ;)
J'avais bêtement appelé la fonction avec la méthode POST alors qu'elle était définie en PUT.
En revanche en l'appelant en PUT j'avais des erreurs d'encodage de JSON, certainement un problème d’option de curl.
J'ai modifié la valeur de la fonction validate dans les commentaires de @url PUT en @url POST afin de respecter le schéma de l'api_orders.class.php.

Ca marche très bien.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 7 mois #88092

  • MkLHX
  • Portrait de MkLHX
  • Hors ligne
  • Junior Boarder
  • Messages : 20
  • Remerciements reçus 1
  • Karma: 0
Bonjour à tous,

Je viens vers vous car je ne vois pas où modifier cela, mais l'api explorer tente de faire ses requêtes au travers de :
https://mondomaine:80/api/index.php/login

Forcément la réponse c'est erreur 500, peut on modifier quelques part le faite que le port 80 soit forcément assigné dans l'url?

Je cherche à comprendre l'option sqlfilters dans les requêtes get...
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 7 mois #88270

  • MkLHX
  • Portrait de MkLHX
  • Hors ligne
  • Junior Boarder
  • Messages : 20
  • Remerciements reçus 1
  • Karma: 0
Bonjour à tous,
J'ai saisi la syntaxe des sqlfilters.
Ceci dit l'utilisation de l'api explorer m'est toujours impossible avec l'url en https via le port 80
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 6 mois #90032

  • yves57
  • Portrait de yves57
  • Hors ligne
  • Gold Boarder
  • Messages : 591
  • Remerciements reçus 121
  • Karma: 10
sthienard écrit:
En recherchant une solution à mon problème j'ai trouvé cette référence :
github.com/Dolibarr/dolibarr/issues/6811

J'ai pu ajouté des lignes à ma facture via la méthode POST et l'argument LINES (à la création quoi).
Cette solution pourrait convenir à mon besoin.
Bonjour,
Je me suis enfin lancé dans l'adaptation de mon script PHP pour utiliser l'API-REST.
Mon cas concerne les propositions commerciales.
J'arrive à créer la proposition commerciale. Mon problème est que les lignes que je voudrais créer avec la proposition ne contiennent aucune information.
En regardant de plus près dans le code, je me rends compte que dans comm/propal/class/propal.class.php, il n'est pas prévu le cas où les lignes sont fournies sous la forme de liste de tableaux, contrairement au cas des factures. Du coup, aucune valeur n'est transmise.
Je viens juste de m'en rendre compte. Je n'ai pas encore évalué l'ampleur des modifications à apporter.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 6 mois #90065

  • frederic34
  • Portrait de frederic34
  • Hors ligne
  • Gold Boarder
  • @NetLogic
  • Messages : 1263
  • Remerciements reçus 338
  • Karma: 60
MkLHX écrit:
Bonjour à tous,
J'ai saisi la syntaxe des sqlfilters.
Ceci dit l'utilisation de l'api explorer m'est toujours impossible avec l'url en https via le port 80
Bonjour
Est-ce que ce :80 ne serait pas dans le fichier conf de dolibarr?

Fred
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: MkLHX

Documentation API REST il y a 1 an 6 mois #90109

  • yves57
  • Portrait de yves57
  • Hors ligne
  • Gold Boarder
  • Messages : 591
  • Remerciements reçus 121
  • Karma: 10
yves57 écrit:
En regardant de plus près dans le code, je me rends compte que dans comm/propal/class/propal.class.php, il n'est pas prévu le cas où les lignes sont fournies sous la forme de liste de tableaux, contrairement au cas des factures. Du coup, aucune valeur n'est transmise.
Je viens juste de m'en rendre compte. Je n'ai pas encore évalué l'ampleur des modifications à apporter.
Bonjour,
Je me réponds. J'ai fait une requête de tirage (pull request) sur Github qui doit corriger ce problème.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 5 mois #90330

  • m.pintor
  • Portrait de m.pintor
  • Hors ligne
  • Gold Boarder
  • i.d & l
  • Messages : 777
  • Remerciements reçus 82
  • Karma: 22
Bonjour,

Un souci avec ce module et Dolibarr 6.0.3 fraîchement mis à jour (justement pour pouvoir utiliser le module REST).

Premier essai, je copie/colle :
http://site/htdocs/api/index.php/login?login=auserlogin&password=thepassword[&reset=1]
comme c'est indiqué sur la page de configuration du module et où site est déjà renseigné mais ni auserlogin ni thepassword que je remplace par le user administrateur et son mot de passe.

Réponse :
<response>
 <error>
  <code>400</code>
  <message>Bad Request: Invalid value specified for `reset`. Expecting integer value</message>
 </error>
 <debug>
  <source>Validator.php:663 at validate stage</source>
  <stages>
   <success>
    <text>get</text>
    <text>route</text>
    <text>negotiate</text>
  </success>
  <failure>
   <text>validate</text>
   <text>message</text>
  </failure>
 </stages>
 </debug>
</response>

Je vire donc [&reset=1], et j'obtiens le token au milieu de codes XMP...

Je vais donc sur le 2nd lien
http://site/htdocs/api/index.php/explorer
et j'arrive sur une page qui affiche API Explorer et dessous :
500 : undefined http://site/htdocs/api/index.php/explorer/resources.json
Je colle le token dans la zone DOLAPIKEY et clique sur Explorer

Je vois brièvement
fetching resource list : undefined http://site/htdocs/api/index.php/explorer/resources.json
puis de nouveau
500 : undefined http://site/htdocs/api/index.php/explorer/resources.json
Nada mas.

Aussi je me demande ce qui se passe... Une idée ? Merci.
Dernière édition: il y a 1 an 5 mois par m.pintor.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 5 mois #90336

  • m.pintor
  • Portrait de m.pintor
  • Hors ligne
  • Gold Boarder
  • i.d & l
  • Messages : 777
  • Remerciements reçus 82
  • Karma: 22
Alors je continue, il faudrait arriver à faire marcher le truc... J'essaie donc...
http://site/htdocs/api/index.php
et...
<response>
 <error>
  <code>404</code>
  <message>Not Found</message>
 </error>
 <debug>
  <source>Routes.php:458 at route stage</source>
  <stages>
   <success>get</success>
   <failure>
    <text>route</text>
    <text>negotiate</text>
    <text>message</text>
   </failure>
  </stages>
 </debug>
</response>

[Edit] Très inquiet à la lecture de cet issue #7623 du 12 octobre dernier toujours sans résolution mais qui semble correspondre à ce que j'observe sur cette installation.

L'hébergeur est oxito, cela peut-il avoir une incidence ?
Dernière édition: il y a 1 an 5 mois par m.pintor.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 5 mois #90340

  • m.pintor
  • Portrait de m.pintor
  • Hors ligne
  • Gold Boarder
  • i.d & l
  • Messages : 777
  • Remerciements reçus 82
  • Karma: 22
Je vais continuer sur les deux fronts, ici et sur github, et reporter aussi ici le contenu du log qui mentionne un warning quand on essaie d'aller sur http://website/htdocs/api/index.php, qui donne un 404 XML avec :
<source>Routes.php:458 at route stage</source>
2017-11-24 15:04:05 INFO [email protected]>[email protected] Scan directory <...>/htdocs/core/modules/ for module descriptor to after search for API files
2017-11-24 15:04:05 WARNING [email protected]>[email protected] We found an api_xxx file (api_category.class.php) but class Category does not exists after loading file
2017-11-24 15:04:05 INFO [email protected]>[email protected] --- End access to /htdocs/api/index.php/explorer/resources.json

Je suis preneur de toute info, mais j'ai l'impression qu'il manque des choses dans l'install...
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 5 mois #90342

  • chag
  • Portrait de chag
  • Hors ligne
  • Fresh Boarder
  • Messages : 14
  • Remerciements reçus 9
  • Karma: 6
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

github.com/Dolibarr/dolibarr/issues/6881
Dernière édition: il y a 1 an 5 mois par chag. Raison: Url github
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 5 mois #90348

  • m.pintor
  • Portrait de m.pintor
  • Hors ligne
  • Gold Boarder
  • i.d & l
  • Messages : 777
  • Remerciements reçus 82
  • Karma: 22
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. :whistle:

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
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 5 mois #90349

  • m.pintor
  • Portrait de m.pintor
  • Hors ligne
  • Gold Boarder
  • i.d & l
  • Messages : 777
  • Remerciements reçus 82
  • Karma: 22
OK, sans attendre la réponse, j'ai dégagé ces fichiers (certains déjà précédemment) et à présent ça fonctionne.

Laborieux !... :(
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 5 mois #90350

  • chag
  • Portrait de chag
  • Hors ligne
  • Fresh Boarder
  • Messages : 14
  • Remerciements reçus 9
  • Karma: 6
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
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 an 5 mois #90458

  • njacquemin
  • Portrait de njacquemin
  • Hors ligne
  • Fresh Boarder
  • Messages : 3
  • Karma: 0
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
L'administrateur a désactivé l'accès en écriture pour le public.