You are not logged in.
Bonjour à tous,
J'essaye de faire une recherche via l'API des différents ordinateurs appartenant à un entité.
Mais c'est un échec J'obtiens 0 comme nombre de résultats...
{"totalcount":0,"count":0,"sort":1,"order":"ASC","content-range":"0--1/0"}
Voici ma requête :
http://ADRESSE_IP/apirest.php/search/Computer?criteria[0][field]=80&criteria[0][searchtype]=contains&criteria[0][value]=NOM_ENTITE/
Est-ce que quelqu'un à déjà réussi à faire fonctionner la recherche via l'API ?
Merci par avance pour vos réponses
Last edited by jonalex (2017-05-10 20:09:35)
Offline
bonjour,
vous devez remplacer criteria[0][searchtype]=contains par criteria[0][searchtype]=0
l'url ci dessous focntionne en 9.1.3
$url="http://[monglpi]/apirest.php/search/Computer/?criteria[0][field]=80&criteria[0][searchtype]=0&criteria[0][value]=Nom_ENTITE&Content-Type=%20application/json&app_token=".$app_token ."&session_token=".$sess_token;
l'url ci dessous vous donne les codes pour les paramètres :
$url="http:/[monGLPI]/apirest.php/listSearchOptions/Computer?Content-Type=%20application/json&app_token=".$app_token ."&session_token=".$sess_token;
[80] => Array ( [name] => Entité [table] => glpi_entities [field] => completename [datatype] => dropdown [available_searchtypes] => Array ( [0] => contains [1] => equals [2] => notequals [3] => under [4] => notunder ) [uid] => Computer.Entity.completename )
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Offline
Bonjour,
Merci beaucoup pour cette réponse. Effectivement ça marche.
En revanche, je rencontre un problème...Car, d'après la doc de l'API on doit stocker le session_token et le app_token dans les Headers de la requête
Parameters: (Headers)
Session-Token: session var provided by initSession endpoint. Mandatory.
App-Token: authorization string provided by the GLPi api configuration. Optional.
et non dans la query
Et lorsque App-Token & Session-Token & Content-Type sont dans le Header de ma requête et non dans la query --> ça ne marche pas... J'obtiens 0 comme résultat
Avez-vous une idée de l'origine de mon problème ?
Merci
Offline
si je passe les paramètres dans le header (je n'avais pas encore essayé mais ça va simplifier mes requètes) ça fonctionne aussi
$ch = curl_init();
$url="http://[monglpi]/apirest.php/search/Computer/?criteria[0][field]=80&criteria[0][searchtype]=0&criteria[0][value]=MonEntite";
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
'Content-Type: application/json',
'app-token: ' .$app_token,
'session-token: '.$sess_token
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close ($ch);
echo "<br/>";
$obj = json_decode($json,true);
print_r($obj);
edit : je viens d'essayer sur un autre serveur ça ne fonctionne pas, j'ai du modifier le header ( majuscules) comme ceci :
$headers = array(
('Content-Type: application/json'),
('App-Token: ' . $app_token),
('Session-Token: '.$sess_token)
);
Last edited by LaDenrée (2017-05-13 13:57:36)
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Offline
Je confirme, ça marche très bien...
J'utilise une DLL en C# qui me rajoutait un "/" à la fin de mon url. Donc pas de soucis dans le cadre d'une requête normale, mais lorsque je faisais une recherche avec mon nom d'entité, du coup la recherche se faisait sur NOM_ENTITE/ et non NOM_ENTITE
Merci encore pour ton aide
As-tu déjà utilisé l'endpoint "changeActiveEntities" ?
Offline
As-tu déjà utilisé l'endpoint "changeActiveEntities" ?
non, je commence tout juste à découvrir et utiliser l'API dans le cadre d'une étude pour migrer de 0.90 vers 9.1.
actuellement j'utilise les webservices en xmlrpc et je ne peux pas migrer tant que je n'ai pas remplacé par l'api. ( portail de creation de tickets, portail de validation, approbation solution et enquete de statisfaction)
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Offline