API REST : PUT marche pas

Bonjour à tous,

je ne comprends pas, lorsque je me sers de l’API REST depuis la page explorer de l’API :
en POST cela fonctionne pour la création d’une société.
Lorsque j’utilise PUT pour modifier une société existante, ça ne marche pas et j’ai le message suivant dans les logs d’apache :

[Sun Jul 21 16:25:03.109042 2019] [:error] [pid 9863] [client XX.XX.XX.XX:35958] PHP Warning: trim() expects parameter 1 to be string, array given in /var/www/monsite.fr/public_html/gestion/societe/class/societe.class.php on line 832

Merci pour vos lumières.

ok, je corrige moi même :

j’ai trouvé le pourquoi du message d’erreur d’apache, ce n’est pas lié à mon problème d’API.

L’API refuse toujours de prendre en compte les requêtes en PUT alors qu’en POST aucun problème.

Cela ne le fait que sur mon serveur en ligne, pas sur mon serveur local, une piste ?

merci d’avance.

Voici ce que disent les logs de dolibarr :

2019-07-21 17:51:08 INFO XX.XX.XX.XX Societe::Update id=203 call_trigger=1 allowmodcodeclient= allowmodcodefournisseur=
2019-07-21 17:51:08 DEBUG XX.XX.XX.XX BEGIN Transaction
2019-07-21 17:51:08 INFO XX.XX.XX.XX Societe::check_codeclient code_client= module=mod_codeclient_elephant
2019-07-21 17:51:08 INFO XX.XX.XX.XX mod_codeclient_elephant::verif type=0 result=-2
2019-07-21 17:51:08 DEBUG XX.XX.XX.XX ROLLBACK Transaction
2019-07-21 17:51:08 WARNING XX.XX.XX.XX Societe::Update fails verify ErrorCustomerCodeRequired

Bonjour @TrackerLeader,

Afin de pouvoir aider au mieux :

  • quelle version de Dolibarr ?
  • quel serveur Web (Apache, Nginx) utilises tu ? (en local et en ligne s’ils sont différents)
  • donnes nous un protocole de reproduction précis (par exemple, j’ai créé une société dans l’interface de Dolibarr avec telles et telles valeurs, ensuite j’ai utilisé l’API pour modifier telle société (donne nous des extraits de ton code d’appel à l’API qui ne marche pas également)).
  • l’appel à l’API retourne t’il des erreurs ? si oui, lesquelles ?

Pour ma part, ça fonctionne très bien donc le problème vient soit du paramétrage du serveur Web, soit des données c’est pour ça qu’il faut plus de contexte pour qu’on puisse t’aider :wink:

Merci pour le détail : visiblement tu essayes de modifier une société qui n’a pas de code client (code_client), or c’est un champ obligatoire.
Peux-tu vérifier que la société en question possède bien un code client dans l’interface de Dolibarr ?

1 « J'aime »

ok j’ai trouvé :

il faut que la société/tiers ait un code client. Si ce code client est vide, l’API PUT ne fonctionnera pas… Donc l’id client ne suffit pas, il faut aussi le code client.
Ou modifier la configuration du module Tiers/société en choisissant un « code libre sans vérification ».
Et là par miracle, le PUT fonctionne…

:wink: