[RESOLU] API Custom : API not found (failed to include API)

Bonjour à tous,
J’essaie depuis quelques heures d’ajouter une api à mon module perso Dolibarr sans succès.
Explorer, de Dolibarr, voit bien mon api (présente dans la liste) mais à l’utilisation depuis l’explorer ou curl la réponse est : API not found ?!
Je ne comprends pas pourquoi dans la mesure ou Explorer voit mon API, une idée ?

Comment j’ai procédé ? Comme suit :

  1. création d’un fichier api_monapi.class.php, sur la base de api_products.class.php. La classe contenu dans ce fichier porte le nom monapi et hérite de DolibarrApi
  2. j’ai placé ce fichier dans htdocs/monmodulequifonctionne/class

Je suppose que j’ai oublié un élément de formalisme mais lequel ?
Merci beaucoup pour votre aide.
Reynald.

Bjr

Il faudrait joindre votre fichier pour qu un dev puisse regarder

Bon, allez je me réponds à moi même :wink: , ca va peut être servir à certains novices comme moi !
Il est indispensable que la classe, le nom du fichier soient identique au nom du module !!!

exemple :
htdocs/monmodulename/class/api_monmodulename.class.php
qui contient une classe : class MonModuleName
Et ca fonctionne parfaitement…

Bien ce Dolibarr :happy: .
Bonne journée à tous.

Oups non avons posté ensemble pm17.
Merci pour votre aide.

Merci pour l’info, ça m’a été utile!

Super. Merci pour votre retour.

Bonjour @LesCarnets,
Si le problème est comme le mien rajouté sa

	//recherche des modules personnalisé
	$files = scandir(DOL_DOCUMENT_ROOT.'/custom/');
	foreach($files as $file){
		if (file_exists(DOL_DOCUMENT_ROOT.'/custom/'.$file.'/class/api_'.$classfile.'.class.php')){
			$dir_part_file = dol_buildpath('/'.$file.'/class/api_'.$classfile.'.class.php', 0, 2);
			$res = include_once $dir_part_file;
		}
	}

dans le api/index.php vers la ligne 330 en dessous de

	$res = false;
	if ($dir_part_file) {
		$res = include_once $dir_part_file;
	}

Car vous avez été dans mon cas de figure la documentation ne dit pas que pour rajouté une route api c’est 1 module entier ceux bout de code va rechercher aussi dans vos module tout les fichier api_XXX qu’il y a comme sa avec 1 module vous pourrez avoir plusieurs route
Bonne continuation

Le problème est que le module api recherche via le nom de la classe et pas vie le nom des modules externes