You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2017-05-10 20:04:58

jonalex
Member
Registered: 2017-04-26
Posts: 23

[API REST GLPI 9.1.3] Recherche par entité

Bonjour à tous,

J'essaye de faire une recherche via l'API des différents ordinateurs appartenant à un entité.

Mais c'est un échec sad 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

#2 2017-05-10 23:57:04

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,168

Re: [API REST GLPI 9.1.3] Recherche par entité

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

#3 2017-05-11 09:08:27

jonalex
Member
Registered: 2017-04-26
Posts: 23

Re: [API REST GLPI 9.1.3] Recherche par entité

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

#4 2017-05-11 10:13:33

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,168

Re: [API REST GLPI 9.1.3] Recherche par entité

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

#5 2017-05-11 14:54:10

jonalex
Member
Registered: 2017-04-26
Posts: 23

Re: [API REST GLPI 9.1.3] Recherche par entité

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

#6 2017-05-11 15:21:02

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,168

Re: [API REST GLPI 9.1.3] Recherche par entité

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

Board footer

Powered by FluxBB