Documentation API REST

Bonjour,
j’arrive pas à accéder à ce url http://<mon_serveur>/api/index.php/
Voila ce que j’obtiens
image

Bonjour,

Le problème vient à première vue du fait de la tentative d’accéder à l’url /api/index.php/agendaevents qui n’est pas une url valide dans un cadre d’affichage sur navigateur.
Si tu ne mets que /api/index.php/explorer pour vérifier tes urls, et faire des essais de requêtes.

L’explorer est par ailleurs un outil à privilégier car il permet de voir les paramètres obligatoires pour chaque requête que l’on veut faire, et débugger nos appels qui ne fonctionnent pas ou mal :wink:

Voila mon explorer


je sais pas ce que je dois faire apres

Par exemple en cliquant sur Show/Hide à agendaevents, tu as plusieurs listes déroulantes, si tu prends la première et que tu fais « executer », est-ce que tu as un résultat qui s’affiche?
Si oui, utilises-tu un outil comme postman pour faire des essais d’API afin de tester tes requêtes avec les paramètres qui vont bien, voir si ton serveur répond par une 404 ou autre chose?

oui lorsque je clique sur exécuter j’obtiens l’ensemble des événements que j’ai créer sur mon agenda mais lorsque j’appelle l’url http://localhost:2020/api/index.php/agendaevents, j’ai ajouter /dolibar à l’url, voila ce que j’obtiens
ou je dois mettre DOLAPIKEY ?
est ce que je dois travailler avec un autre outil ?

Vous pouvez utiliser des logiciels pour tester les requêtes comme postman par exemple.
Ce dernier permet de construire une requête avec tous les paramètres tels qu’on peut les utiliser dans un code, contrairement au navigateur qui est moins pratique.
Le DOLIAPIKEY est à passer dans les headers par exemple voici le début de la requête construite pour un appel curl à l’API:
curl -X GET --header 'Accept: application/json' --header 'DOLAPIKEY: XXX'

1 « J'aime »

c’est juste pour les tests ?
Moi je veux faire la gestion des ressources en utilisant l’API REST
je devais seulement activer l’API ou je dois suivre cette procédure de test et de DOLIAPIKEY
une autre question, ou je peux mettre ce genre de code

// Créer un produit
$ref = « ma_reference_produit_X203ZZ »;
$newProduct = [
« ref » => $ref,
« label » => $ref
];
$newProductResult = CallAPI(« POST », $apiKey, $apiUrl.« products », json_encode($newProduct));
$newProductResult = json_decode($newProductResult, true);

En effet, ce sont juste des intermédiaires pour réaliser des tests, une communication avec une API se fait via une appli ou un site web vers le logiciel ou site web fournissant l’API.
C’est totalement transparent pour l’utilisateur final et n’est pas lisible (pour une personne lambda) via un navigateur.

Ceci donne donc lieu à un développement afin que votre interface communique avec l’API de Dolibarr.

Plutôt que de mener des tests avec votre code qui peuvent introduire des biais pour diverses raisons, on utilise des logiciels afin de d’abord tester notre requête si elle est valide, puis l’intégrer une fois que c’est vérifié.

Concernant le bout de code que vous montrez, il faudrait, dans l’absolu le mettre au niveau du script qui fait l’affiche de l’interface. En considérant que vous avez bien intégré la fonction CallAPI.

aaah je vois
et si je veux savoir l’état des ressources, salle de réunion par exemple, à l’aide des capteurs de présence ou de camera et après afficher l’état sur agenda DOLIBAR. est ce possible ou pas ?

Oui c’est possible, il n’y aura pas d’interface utilisateur mais au moment où vous récupérez l’état des ressources, vous pouvez y mettre un code similaire pour les modifier/créer un événement sur l’agenda

comment je peux developper ça ? Je dois utiliser un langage de programmation comme PHP, JAVASCRIPT… n’est ce pas ?

Oui, c’est faisable via un langage de programmation, PHP, Javascript, Java, Ruby, Python parmi tant d’autres.
A savoir que l’exemple de code que vous avez trouvé est en PHP

1 « J'aime »

ah d’accord
Merci beaucoup

Bonjour,

Y a t il des avancés sur la documentation API incomplète sur l’API Explorer ?

Arrivez vous à utiliser correctement l’API et à développer dessus ?

Il est possible d’aller fouiller dans les fichiers api XX .php puis les classes des objets à créer, facture ici en l’occurrence. Mais la démarche n’est vraiment pas simple.
Dans ce cas, comment mettre à jour ces données, il faut devenir contributeur au github ?

Visiblement ce n’est pas une feature request qu’il faut faire ; REST API not possible to add invoice lines · Issue #6811 · Dolibarr/dolibarr · GitHub

La précision de la doc API et le respect des standards ne peut être que bénéfique pour Dolibarr n’est ce pas ?

Bonne journée

Bonjour,

La documentation est en effet légère, mais relativement complète.
Je n’ai pas encore été voir le lien que vous avez fourni pour le repos, mais une fois que l’on a compris la logique du code, il est aisé d’utiliser l’API.

Cependant, j’adhère au fait que la précision ne serait que bénéfique

Bonjour,

J’ai réussi à utiliser l’API pour développer une intégration entre Stripe / Dolibarr et mon application. Il est vrai en effet que cette dernière est imparfaite et non pleinement documentée mais c’est un projet opensource, donc, en effet il est possible de contribuer via Github pour améliorer cela.

L’auto documentation Swagger est mise en place en utilisant des annotations PHP si je me souviens bien. Il faudrait également enrichir la page de documentation présente sur le Wiki avec plus d’exemples : Module Web Services API REST (développeur) - Dolibarr ERP CRM Wiki

A mon sens, la plus grosse problématique de l’API est qu’elle est adossée directement aux classes métier de Dolibarr. Un changement malheureux dans ces dernières et hop l’intégration est fichue. Cela empêche également de « figer/fixer/versionner » l’API ce qui permettrait de pouvoir mettre à jour Dolibarr sans risque de « casser » les intégrations API développées tant que la version d’API n’est pas mise à jour (à la manière de ce que Stripe fait par exemple). Malheureusement, vu l’architecture actuelle, je doute que cela soit faisable …

A chaque mise à jour de Dolibarr, je dois prévoir une 1/2 journée de dév pour passer en revue mon intégration et corriger/débuguer les changement parfois pas clairement documentés :confused:

Bonjour,

Une rectification est à faire sur le message de @chag quant à la génération du token.

Le lien a cette forme : http:///api/index.php/login?login=&password=yourpassword
copiez le lien, remplacez yourpassword par votre mot de passe utilisateur. Normalement, et sont déjà remplacés. collez le lien dans votre navigateur pour générer votre . ce dernier est lié à votre compte utilisateur

Il est déconseillé d’utiliser la méthode GET pour des raisons de sécurité. De plus, en passant par cette méthode pour la génération du token, vous rencontrerez 2 soucis :

  • Si le mot de passe comprend un caractère dièse, la vérification utilisateur échouera
  • La vérification des permissions de l’utilisateur échouera

Il est donc recommandé d’utiliser la méthode POST, soit générer le token via la fiche profil de l’utilisateur et vous ne rencontrerez aucun souci.

1 « J'aime »

Bonjour,
Nous avons une demande en interne pour avoir un affichage type Dashboard pour des informations à visualiser rapidement.
Qulequ’un a t il déjà utiliser l’API avec un produit comme Dash ou autre et si oui est ce que cela fonctionne bien ?
Merci pour vos retours.

Hello,
Je test cette solution pour accéder aux documents via API. Malheureusement j’ai une erreur 500.Ce code n’est plus d’actualité ?
Brice