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 2019-05-21 14:41:58

Aurel44
Member
Registered: 2016-05-12
Posts: 23

API REST - requêtes sur plugins - possible ou pas possible

Bonjour,

Je chercher à faire des requêtes API REST sur les plugins WEBAPPLICATION et BASE DE DONNEES.
Pour le moment, je n'ai pas réussi à le faire.
Est-ce qu'il y a une limitation à l'utilisation de l'API REST ?
(j'ai vu plusieurs TOPICs parlant de ce sujet mais restant sans réponse à ce jour).

Merci d'avance pour votre aide les amis

Bonne journée

Offline

#2 2019-05-21 15:01:00

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

Re: API REST - requêtes sur plugins - possible ou pas possible

plugin+Nomduplugin+classe
par exemple pour récupérer une webapplication  :

$url="[...]/glpi/apirest.php/pluginWebapplicationswebapplication/1/";

par exemple pour récupérer une Database:

$url="[...]/glpi/apirest.php/pluginDatabasesdatabase/1/";


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 2019-05-21 18:17:04

Aurel44
Member
Registered: 2016-05-12
Posts: 23

Re: API REST - requêtes sur plugins - possible ou pas possible

Merci LaDenrée ! smile
Réponse au top.

Donc, l'API REST est fonctionnelle avec les plugins WebApplication et Database, je confirme smile
Me reste juste à trouver comment rechercher une web application qui comporte le mot clé dans son nom... mais je vais chercher et si je ne trouve pas, je reviendrais faire un tour ici.

Encore merci.

Offline

#4 2019-05-24 17:13:40

Aurel44
Member
Registered: 2016-05-12
Posts: 23

Re: API REST - requêtes sur plugins - possible ou pas possible

Je reviens sur ce topic car je ne parviens pas à faire de recherche sur le plugin.
Je m'explique.

L'affichage fonctionne très bien lorsqu'on connait l'ID de l'objet du plugin WebApplication mais lorsqu'on veut faire une recherche avec un mot clé, l'API ne retour pas le résultat attendu.
Voici les commandes que j'ai utilisées :

$url="[...]/glpi/apirest.php/search/pluginWebapplicationswebapplication?criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=$motcle";
Résultat de la requête :
totalcount    :
count         : 0
sort          : 1
order         : ASC
content-range : 0--1/

J'ai également testé la requête suivante pour voir si ça me retournait mes WebApplications mais sans succès :

$url="[...]/glpi/apirest.php/pluginWebapplicationswebapplication?range=0-1000"
Résultat de la requête : aucun retour

Si quelqu'un a une idée, je suis preneur.

J'ai trouvé une parade en faisant une recherche sur chaque ID mais ça prend énormément de temps :

for($i=0; $i -lt 10000; $i++)
    {
    $resultReq = ($(Invoke-RestMethod "$($global:GLPI_api)pluginWebapplicationswebapplication/$i/"  -Method Get -Headers $global:HeadersRequest) | select * | where name -LIKE "*$motcle*").address
    if ($resultReq)
        {
        write-host "Résultat recherche URL : $resultReq"
        if ($resultatURL)
            {
            $resultatURL=$resultReq
            $count=1
            }
            else
            {
            $resultatURL=$resultatURL+"°"+$resultReq
            $count=$count+1
            }
        }
    }

Merci

Offline

#5 2019-05-25 10:26:02

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

Re: API REST - requêtes sur plugins - possible ou pas possible

Pour  le mot clé c est ^motcle$
Accent circonflexe avant et dollars après


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

#6 2019-05-27 16:42:40

Aurel44
Member
Registered: 2016-05-12
Posts: 23

Re: API REST - requêtes sur plugins - possible ou pas possible

Merci encore LaDenrée.

Malheureusement, ça ne fonctionne pas.
Mon code est en PowerShell.
$motcle correspond à ma variable en fait. Effectivement, tu as raison, je pourrais rechercher le mot clé qui pourrait correspondre au nom de mon application mais je préfère avoir un mot clé qui pourrait matcher avec plusieurs noms de webapplication.

J'ai testé ceci :

PS C:\WINDOWS\system32> $(Invoke-RestMethod "https://monglpi/glpi/apirest.php/search/pluginWebapplicationswebapplication?criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=MOTCLE"  -Method Get -Headers $global:HeadersRequest)

Le résultat de cette requête est le suivant :
totalcount    :
count         : 0
sort          : 1
order         : ASC
content-range : 0--1/

J'ai testé la même requête sur les groupes et celle ci fonctionne bien :
PS C:\WINDOWS\system32> $(Invoke-RestMethod "https://monglpi/glpi/apirest.php/search/group?criteria[0][field]=14&criteria[0][searchtype]=0&criteria[0][value]=MOTCLE" -Method Get -Headers $global:HeadersRequest)
totalcount    : 1
count         : 1
sort          : 1
order         : ASC
data          : {@{1=GROUPE - MOTCLE; 16=groupe de test; 14=MOTCLE}}
content-range : 0-0/1

J'ai également vérifié la liste des SearchOptions pour le plugin et c'est pourtant bien le champ 1 sur lequel je dois rechercher.
PS C:\WINDOWS\system32> $(Invoke-RestMethod "https://monglpi/glpi/apirest.php/listSearchOptions/pluginWebapplicationswebapplication"  -Method Get -Headers $global:HeadersRequest)

common : @{name=Applications Web}
1      : @{name=Nom; table=glpi_plugin_webapplications_webapplications; field=name; datatype=itemlink; nosearch=False; nodisplay=False; available_searchtypes=System.Object[];
         uid=PluginWebapplicationswebapplication.PluginWebapplicationsWebapplication.name}
2      : @{name=Catégorie; table=glpi_plugin_webapplications_webapplicationtypes; field=name; datatype=dropdown; nosearch=False; nodisplay=False; available_searchtypes=System.Object[];
         uid=PluginWebapplicationswebapplication.PluginWebapplicationsWebapplicationType.name}

Si tu as une autre idée sur la raison pourquoi le résultat de ma requête ne s'affiche pas, je suis preneur.
Merci

Offline

#7 2019-05-28 16:40:14

Aurel44
Member
Registered: 2016-05-12
Posts: 23

Re: API REST - requêtes sur plugins - possible ou pas possible

Pour faire plus simple sur ma demande, pourquoi cette différence entre une recherche sur les groupes et sur les webapplications ? Sur les groupes, j'obtiens le nombre d’occurrence en faisant une simple recherche alors que pour les webapplications, je n'ai pas ce total. J'ai l'impression que la recherche sur le plugin WebApplication ne fonctionne pas :

PS C:\WINDOWS\system32> $(Invoke-RestMethod ""https://monglpi/glpi/apirest.php/search/group"  -Method Get -Headers $HeadersRequest)
totalcount    : 824
count         : 15
sort          : 1
order         : ASC
data          : {@{1=Groupe1}, @{1=Groupe2}, @{1=Groupe2}, @{1=Groupe3}...}
content-range : 0-15/824

Et sur les WebApplications, ça donne ceci :

PS C:\WINDOWS\system32> $(Invoke-RestMethod "https://monglpi/glpi/apirest.php/search/pluginWebapplicationswebapplication"  -Method Get -Headers $HeadersRequest)
totalcount    :
count         : 0
sort          : 1
order         : ASC
content-range : 0--1/

J'ai testé également sur les plugins : pluginDatabasesdatabase et pluginAccountsaccount et j'obtiens un résultat similaire, à savoir, pas de nombre total d'occurrence.
Si quelqu'un a réussi à faire fonctionner la recherche via API REST sur un plugin GLPI, merci de partager votre expérience.

Offline

#8 2019-05-28 16:46:05

Jean-Christophe
Moderator
Registered: 2007-08-22
Posts: 734

Re: API REST - requêtes sur plugins - possible ou pas possible

Hello,
Je fais ça sur le plugin Fusioninventory et ça fonctionne.
Si je cherche les "PluginFusioninventoryIPRange" ou les "PluginFusioninventoryAgent", par exemple, j'ai bien une réponse.

Je vois que tu fais du Powershell, tu devrais regarder dans le forum, je viens de poster un lien vers un module powershell pour faire tout ça.

Offline

#9 2019-06-03 11:58:28

Aurel44
Member
Registered: 2016-05-12
Posts: 23

Re: API REST - requêtes sur plugins - possible ou pas possible

Merci Jean-Christophe !
Voici le lien vers le topic dont parle Jean-Christophe : https://forum.glpi-project.org/viewtopic.php?id=169938
Je vais tester ça.

Offline

#10 2019-06-03 12:18:58

Aurel44
Member
Registered: 2016-05-12
Posts: 23

Re: API REST - requêtes sur plugins - possible ou pas possible

Merci pour ton aide. Le script est super !
En ce qui concerne mon problème, il s'agissait d'une faute de frappe dans le nom du plugin car c'est "case sensitive" ! smile
Du coup, pour faire une recherche sur les webapplications, il faut utiliser la requête :

PS C:\WINDOWS\system32> $(Invoke-RestMethod "https://monglpi/glpi/apirest.php/search/pluginWebapplicationsWebapplication"  -Method Get -Headers $HeadersRequest)

au lieu de :

PS C:\WINDOWS\system32> $(Invoke-RestMethod "https://monglpi/glpi/apirest.php/search/pluginWebapplicationswebapplication"  -Method Get -Headers $HeadersRequest)

Les 2 "w" du nom du plugin doivent être en majuscule sinon ça ne fonctionne pas.

Un grand merci à Jean-Christophe et à LaDenrée pour votre aide précieuse.

Offline

Board footer

Powered by FluxBB