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

SUJET : Documentation API REST

Documentation API REST il y a 10 mois 3 semaines #101270

  • radeff
  • Portrait de radeff
  • Hors ligne
  • Fresh Boarder
  • Messages : 6
  • Karma: 0
Bonjour

Merci pour cette page qui avec wiki.dolibarr.org/index.php/Module_Web_S...T_(d%C3%A9veloppeur) sont les deux seules ressources que j'ai trouvé sur les API dolibarr (dommage, doc maigre alors que c'est fort intéressant)

J'ai pu faire tourner l'exemple pour générer une facture provisoire depuis mon framework cakePhp, via l'API (qui fonctionne donc)

Par contre j'essaie sans succès via l'API de valider une facture pour obtenir son numéro final (j'utilise le masque mercure)

J'ai vu que c'était la fonction getNextNumRef qui était censée faire ça...

j'ai essayé pas mal de variantes autour de:
$res = $client->getNextNumRef($authentication, $invoice);

est-ce que quelqu'un aurait une piste? ce serait pas possible via l'API?
si non, une autre piste?
un grand merci d'avance

PS: je suis sur une 8.0.2
Dernière édition: il y a 10 mois 3 semaines par radeff.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 10 mois 3 semaines #101293

  • jtraulle
  • Portrait de jtraulle
  • Hors ligne
  • Admin
  • Messages : 180
  • Remerciements reçus 59
  • Karma: 12
Bonjour @radeff,

Donc, si je comprends bien, vous essayez de valider une facture depuis l'API REST, mais ça ne fonctionne pas.
C'est bien cela ?

Vous appelez bien le endpoint POST /invoices/<idfacture>/validate ?

Si oui, quelle est l'erreur retournée ?
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 10 mois 3 semaines #101308

  • radeff
  • Portrait de radeff
  • Hors ligne
  • Fresh Boarder
  • Messages : 6
  • Karma: 0
Bonjour @jtraulle
top merci
non je ne faisais pas ça... logique si ça ne jouait pas!
je teste et je vous dis
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 3 mois 3 jours #110563

  • Eurochef
  • Portrait de Eurochef
  • Hors ligne
  • Fresh Boarder
  • Messages : 13
  • Remerciements reçus 1
  • Karma: 1
Bonjour,

Dans le cadre d'une integration entre Dolibarr et un PBX, je m'initie aux echanges API REST.
J'arrive à acceder à la page explorer et à la liste de mes modules, mais les choix sont limité.

E effet ce qui m'intéresse dans le cadre de cette intégration c'est de faire remonter la fiche contact d'un client au travers de sonnuméro de téléphone.

Or au niveau contact dans l'explorer les seuls essais que je peux faire sont basés sur l'ID.
J'admet être néophyte en développement mais également autodidacte donc si quelqu'un voulait bien me renseigner sur le fonctionnement de l'explorer REST ^^

Par avance merci.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 3 mois 3 jours #110571

  • timmy63
  • Portrait de timmy63
  • Hors ligne
  • Expert Boarder
  • Messages : 82
  • Remerciements reçus 22
  • Karma: 1
@Eurochef

L'astuce est d'utiliser l'API GET (list) où tu recupères tous les contacts en utilisant le champs sqlfilters (regarde l'exemple dans l'explorer) ou tu devrais pouvoir spécifier le champs de la base à filtrer.
Avec le numéro de tél çà devrait le faire et un (t.phone:like:'%473941234')
% permet d'échapper un caractère (dans l'exemple ca me permet de prendre en compte +33, 0, +330,+33(0) et autres qui peuvent etre utils si les numéros n'ont pas tous le meme format)
Attention tu récupères un tableau de résultat et non une instance (même si il y a qu'un resultat)
Dernière édition: il y a 3 mois 3 jours par timmy63.
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: Jrdelavegas

Documentation API REST il y a 3 mois 22 heures #110693

  • Jrdelavegas
  • Portrait de Jrdelavegas
  • Hors ligne
  • Junior Boarder
  • Messages : 39
  • Remerciements reçus 4
  • Karma: 0
@Eurochef
Je serai curieux de savoir comment tu as fait pour réussir à afficher la list de tes modules dans l'explorer d'API.
J'ai réussi à créer mon token. Jusque là pas de PB. Pour afficher l'explorer il me faut un temps fou! Quelques secondes (45 à 60 sec environs), mais je trouve ça très lent... Je précise que mon Dolibarr est sur un hébergement mutualisé OVH. Toutes les autres pages s'ouvrent en un claquement de doigts. Sauf l'explorer. Et j'ai bien lu tout le Forum (de la page 1 à la page 9), donc bien supprimé tous les fichiers inutiles, voir même modifier la fameuse ligne 93 du fichier index.php contenu dans htdocs/api/ et toujours pareil...
Je suis dans le même cas que toi. Je cherche à intégrer un PBX à mon Dolibarr. Pour mon cas c'est 3CX.

@ bientôt!
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 2 mois 3 semaines #110837

  • Eurochef
  • Portrait de Eurochef
  • Hors ligne
  • Fresh Boarder
  • Messages : 13
  • Remerciements reçus 1
  • Karma: 1
@Jrdelavegas

BOnjour,

Je suis également en train de travailler à l'intégration d'un 3CX.
En ce qui concerne mon explorer, après la récupération du token, tout est monté instantanément pour la consultation d'explorer.
Mon serveur est en local (pour mes test) et c'est bien l'une des seules pages rapides à s'afficher.
Dernière édition: il y a 2 mois 3 semaines par Eurochef.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 2 mois 3 semaines #110838

  • Eurochef
  • Portrait de Eurochef
  • Hors ligne
  • Fresh Boarder
  • Messages : 13
  • Remerciements reçus 1
  • Karma: 1
@timmy63


Merci pour ton retour.
Ce qui me pose problème c'est la création du fichier API en lui même, je commence a comprendre la structure et comment se passent les echanges, en revanche je ne sais pas quoi faire de ce fichier.

Pour ce qui est des variables contacts a interroger et récupérer, je viens enfin de trouver le fichier api_contacts.class qui ne se trouvé pas dans contact mais dans société ...
Dernière édition: il y a 2 mois 3 semaines par Eurochef.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 2 mois 3 semaines #110877

  • Jrdelavegas
  • Portrait de Jrdelavegas
  • Hors ligne
  • Junior Boarder
  • Messages : 39
  • Remerciements reçus 4
  • Karma: 0
@Eurochef
D'accord, je comprends mieux. Mon dolibarr est sur un hébergement mutualisé (OVH), donc l'explorer "fonctionne" à moitié.
Cependant, pour des raisons de test, nous avons installé un dolibarr en local (et là l'explorer fonctionne bien), pour l'intégration de 3CX.
Nous sommes en train de finaliser notre template (3CX), je vous tiens informé dans la journée, nous allons effectuer des test d'intégration aujourd'hui même... Mais ça semble être sur la bonne voie. :)
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: Eurochef

Documentation API REST il y a 1 mois 5 jours #112723

  • Jacques83300
  • Portrait de Jacques83300
  • Hors ligne
  • Senior Boarder
  • Messages : 57
  • Remerciements reçus 2
  • Karma: 0
Bonjour,

Merci beaucoup pour cette contribution. Grâce à elle, je viens de créer une première application utilisant l'API de Dolibar (sous PHP Symfony) et tout fonctionne parfaitement.
Pour faciliter le travail de mes utilisateurs, j'ai décidé de rajouter une option dans le menu de Dolibarr pour appeler cette nouvelle application. Ça fonctionne également.
Ce qui me manque c'est la possibilité de n'autoriser l'appel de mon application que depuis Dolibarr et d'empêcher son appel depuis l'extérieur en utilisant directement son URL depuis un navigateur.
Une solution serait de l'intégrer dans un plugin mais je n'ai pas trop d'expérience et je ne suis pas certain qu'un développement avec Symfony s'intègrera aisément dans un plugin. Le facteur temps est également un point important.

Si quelqu'un a une petite idée, elle sera la bienvenue.
D'avance merci.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 mois 5 jours #112724

  • jtraulle
  • Portrait de jtraulle
  • Hors ligne
  • Admin
  • Messages : 180
  • Remerciements reçus 59
  • Karma: 12
Salut @Jacques83300

Une solution "simple" que tu peux mettre en œuvre c'est d'ajouter un paramètre GET aux requêtes de ton appli symfony. Pour chaque requête dans ton appli Symfony, tu peux par exemple attendre un paramètre secretKey qui sera égal à une clé secrète que tu définies arbitrairement et que tu vérifies systématiquement. Pour les appels depuis Dolibarr, tu passes ce paramètre dans l'URL que tu ajoutes au menu par exemple

https://monAppSymfony.example/monController/monAction?secretKey=FWt0kPygbzGHVveWWkSGUkgTqWtIqURt
C'est une solution "rapide" mais il est possible de faire mieux et plus sécurisé bien évidement ;)
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 mois 5 jours #112725

  • Jacques83300
  • Portrait de Jacques83300
  • Hors ligne
  • Senior Boarder
  • Messages : 57
  • Remerciements reçus 2
  • Karma: 0
Bonjour @jtraulle,

Merci ta réponse rapide et ta solution simple et efficace.
Eventuellement, je peux utiliser comme clé l'APIKEY nécessaire pour accéder à l'API de Dolibarr. Cette clé est actuellement stockée dans mon application. Sans cette clé correcte, Dolibarr refusera les requêtes.
Qu'en penses-tu ?

Je reste ouvert à d'autres solutions même si je pense intégrer celle-ci dans un premier temps.
L'administrateur a désactivé l'accès en écriture pour le public.

Documentation API REST il y a 1 mois 5 jours #112727

  • jtraulle
  • Portrait de jtraulle
  • Hors ligne
  • Admin
  • Messages : 180
  • Remerciements reçus 59
  • Karma: 12
Jacques83300 écrit:
Merci ta réponse rapide et ta solution simple et efficace.
Eventuellement, je peux utiliser comme clé l'APIKEY nécessaire pour accéder à l'API de Dolibarr. Cette clé est actuellement stockée dans mon application. Sans cette clé correcte, Dolibarr refusera les requêtes.
Qu'en penses-tu ?

Pour ma part, j'utiliserais une clé secrète distincte et sans rapport avec la clé d'API Dolibarr.

Dans l'éventualité où la clé que tu utiliseras fuiterait / serait récupérée (fuite d'access log ou autre), avec une clé distincte, elle ne permettrait que d'exécuter les choses que tu as implémentées dans ton appli Symfony (exécuter des requêtes via ton application sans y être autorisé).

Alors que si tu utilises la clé d'API Dolibarr directement, cela permettrait à l'utilisateur ayant récupéré la clé d'utiliser l'API Dolibarr directement (accès à l'ensemble des endpoints de l'API pour lesquels l'utilisateur Dolibarr lié à la clé d'API a accès au niveau des permissions/autorisations définies pour l'utilisateur).
Dernière édition: il y a 1 mois 5 jours par jtraulle.
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: Jacques83300

Documentation API REST il y a 1 mois 4 jours #112731

  • Jacques83300
  • Portrait de Jacques83300
  • Hors ligne
  • Senior Boarder
  • Messages : 57
  • Remerciements reçus 2
  • Karma: 0
jtraulle écrit:
Pour ma part, j'utiliserais une clé secrète distincte et sans rapport avec la clé d'API Dolibarr.

Dans l'éventualité où la clé que tu utiliseras fuiterait / serait récupérée (fuite d'access log ou autre), avec une clé distincte, elle ne permettrait que d'exécuter les choses que tu as implémentées dans ton appli Symfony (exécuter des requêtes via ton application sans y être autorisé).

Alors que si tu utilises la clé d'API Dolibarr directement, cela permettrait à l'utilisateur ayant récupéré la clé d'utiliser l'API Dolibarr directement (accès à l'ensemble des endpoints de l'API pour lesquels l'utilisateur Dolibarr lié à la clé d'API a accès au niveau des permissions/autorisations définies pour l'utilisateur).

Je pense que ton explication est pleine de sagesse et que je vais suivre ta proposition.
Dernière édition: il y a 1 mois 4 jours par Jacques83300.
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: jtraulle