Documentation API REST

Les méthodes API pour les produits sont implémentées (\product\class\api_products.class.php) mais n’apparaissent pas dans l’explorer si je n’active pas le module « Gestion des produits », or je ne vends pas de produits mais des services (Module Services activé) …

EDIT : J’ai activé la gestion des produits et actualisé les permissions à mon compte utilisateur pour accèder aux méthodes products, çà devrait me convenir du moment que je ne donne pas cette permission à mes utilisateurs qui gèrent la création des services

Merci à vous deux pour vos contributions.
J’ai ajouter le lien de langue entre les deux pages pour dire que l’une est la traduction de l’autre.
Sinon, çà me donne des idées. J’ai déjà fait un petit script PHP qui utilise directement les fonctions de création d’une offre, mais sans passer par l’API REST. Cà pourrait être aussi une voie.

ca, c’est bien si tu es sur le même serveur non ?

Sur le même serveur on peut utiliser la méthode getDocumentPath() par contre si l’application est ailleurs il faut réaliser un ‹ téléchargement › du document pdf entre le serveur Dolibarr et l’application, d’où la méthode getDocumentStream().

Désolé pour le retour tardif, une moiss-bat a arraché la ligne de téléphone (rigolez pas), plus d’ADSL pendant 2 jours :confused:

Oui, c’est mon cas. Mais effectivement, je ne l’ai pas développé pour une diffusion large, mais juste pour répondre à mon besoin.
Je suis quand même intéressé par cette méthode (que je viens aussi d’utiliser dans un autre contexte) qui donne plus de latitude dans l’utilisation et surtout l’implantation.

Bonjour, j’essaie d’implémenter la classe Payments pour l’API car elle n’existe pas et si on peut déjà générer des factures, on ne peut pas encore automatiser la saisie des règlements.

J’ai donc créé le fichier api_payments.class.php dans le dossier compta/paiement/class

J’y ai déclaré la classe Payments extends DolibarrApi avec les méthodes get et index

L’API explorer ne m’affiche pas l’entrée /payments donc pouvez-vous me donner la marche à suivre pour référencer cette nouvelle entrée svp ?

Bien cordialement

PS : En attendant d’avoir une réponse à cette question je me suis placé dans compta\facture\class\api_invoices.class.php

Bonjour a tous,

cela fait toute l’apres midi que j’essaie de faire fonctionner cet api rest.

J’ai lu et relu le wiki, ce post et les autres et je ne comprends pas …

Des que j’execute la 1er commande https://monurl/api//login?login=<mon login utilisateur>&password=yourpassword en replancant mes log et pwd …
J’ai toujours une erreur 500 …

En modifiant le script index.php, en ajoutant des print, je constate bien que le script s’exécute, mais il ne va pas au bout de la recherche des class … il s’arrête dans les boucle avant le sort($listofapis);

Je ne comprends pas pourquoi … quelque aurait 'il déjà rencontré ce genre de pb ?

Est ce qu’une config du serveur pourrait empecher de scruter l’ensemble des directory ?

Merci d’avance de votre retour d’expérience

Mon dolibarr est hébergé chez OVH en mutualisé et je suis en 5.0.4 …

Bonjour,
j’ai rencontré le même problème.
Je précise que notre version de Dolbarr provient d’une version 3, qui a progressivement migré vers la 5.0.4.
J’ai constaté une erreur 500 lorsque j’accès à l’explorer REST.
Après moult essais, j’ai découvert un nombre incalculables de fichiers deprecated qui n’ont pas été supprimé suite à la dernière migration 5.0.4, ainsi que des fichiers de classes qui ont été « pluralisés ».
Par exemple, api_commandes.class.php est devenu api_orders.class.

Pour trouver les fichiers qui posaient problème, j’ai ajouté des print_r sur chacune des erreurs capturées par dol_syslog.
En supprimant les fichiers obsolètes, l’explorer fonctionne de nouveau.

Bon courage.

merci pour ce retour :happy:

Désolé, j’ai pas réagi quand j’ai vu le bug mais pour info :

https://github.com/Dolibarr/dolibarr/issues/6881

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…

Je me réponds :wink:
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.

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…

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,
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.

Bonjour
Est-ce que ce :80 ne serait pas dans le fichier conf de dolibarr?

Fred

1 « J'aime »

Bonjour,
Je me réponds. J’ai fait une requête de tirage (pull request) sur Github qui doit corriger ce problème.

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.

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 ?

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 :

[code]

Routes.php:458 at route stage[/code]
2017-11-24 15:04:05 INFO IP@->IP@ Scan directory <...>/htdocs/core/modules/ for module descriptor to after search for API files
2017-11-24 15:04:05 WARNING IP@->IP@ 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 IP@->IP@ --- 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…