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 2021-04-07 14:21:40

aziz
Member
Registered: 2021-03-30
Posts: 109

Récupération des tickets via l'API REST (Java)

Bonjour,

Je développe une application Android qui me permettra dans un premier temps d'authentifier un utilisateur, et d'afficher tous les tickets qu'on lui a attribué (ainsi que leurs attributs: Etats, urgence, etc...).
J'ai activé l'API etc mais je n'ai pas bien saisis le principe des tokens etc. je vois pas comment je peux récupérer les donnés en s authentifiant avec le token dans mon code java sur android studio . aider moi svp
merci d'avance

Offline

#2 2021-04-07 15:37:52

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

Re: Récupération des tickets via l'API REST (Java)

Je ne connais PAS DU TOUT java. Mon commentaire sera donc relativement général pour l'usage de l'API. Je pars du principe que GLPI est installé en Anglais et que l'API est active (Setup > General > API > Enable Rest API).

1. le client API est lié à une IP ou une plage d'IP . Dans ce cas-ci, ce sera une grande plage, puisque ce sont des devices mobiles qui sont, je présume, en IP dynamique. Setup > General > API. Ce client API a un Application Token (par exemple cv6gboim3jnFIQ25cJedqJ4pRdu9M91FjwPfJtps). C'est lui qui autorise la connexion à l'API.
2. L'utilisateur a un API token (par exemple c6BRf8uJHPEr1AyDTdt2zn97S6EdMAHPXK6qTxlA) défini dans Administration > Users > [MonUtilisateur] > User > Remote Access Keys. Il sera aussi appelé "User Token".


Lors de l'utilisation de l'API, il faut d'abord initialiser la session.
Pour ça, on a besoin de
- URL de l'API
- Application Token
- Une méthode d'authentification de l'utilisateur. C'est soit son User Token OU une chaîne de caractères qui est l'encodage en Base64 de {login:password} du user.

On fait un GET sur apirest.php/initSession/ en  passant les informations ci-dessus dans le header. On récupère un session_token (par exemple 83af7e620c83a50a18d3eac2f6ed05a3ca0bea62)

Ensuite, quand on a le Session Token, on peut utiliser l'API en fonction des droits de l'utilisateur avec lequel on s'est connecté.
Pour ça, on doit passer le "Application Token" et le "Session Token" en header des commandes de l'API. On fait sa petite popote, on récupère, on ajoute, on modifie ou on efface des objets.

Quand on terminé, on tue la session avec un kill session à qui on donne le Session Token comme header.

Tout ça est documenté dans la page d'information de l'API disponible directement sur le serveur (quand l'API est active)  http(s)://[mon serveur GLPI]/apirest.php

Bon amusement :-)

Offline

#3 2022-05-18 21:55:28

hady
Member
Registered: 2022-05-18
Posts: 12

Re: Récupération des tickets via l'API REST (Java)

est ce que je peux avoir votre mail?

Offline

#4 2022-05-18 22:07:30

hady
Member
Registered: 2022-05-18
Posts: 12

Re: Récupération des tickets via l'API REST (Java)

Bonjour,

Je développe une application Android qui me permettra dans un premier temps d'authentifier un utilisateur, et d'afficher tous les tickets qu'on lui a attribué (ainsi que leurs attributs: Etats, urgence, etc...)
J'étais content de voir qu'une API existait, mais pour l'instant j'ai du mal à comprendre le fonctionnement des requêtes. J'ai activé l'API etc mais je n'ai pas bien saisis le principe des tokens etc.

Quelqu'un pourrait m'expliquer brièvement ou en détail ce concept? Ainsi que comment effectuer une telle requête au niveau de mon code Android (Java donc) pour authentifier un utilisateur et afficher tous les tickets qu'on lui a attribué?  Après avoir compris le principe je pourrai m'amuser avec d'autres requêtes.

Merci d'avance.

P.S: Je travaille en localhost pour l'instant et j'ai la version 9.1

Offline

Board footer

Powered by FluxBB