You are not logged in.
Bonjour,
Je cherche à faire une application pour permettre de faire l'inventaire du mon parc.
Je passe par l'API de GLPI 9.1.3
J'ai réussi à faire des mise à jour de la fiche ordinateur, mais impossible de créer une liaison avec un écran.
J'utilise Postman pour mes tests.
Je commence par un GET de glpi/apirest.php/Computer/2628/Computer_Item
Je reçoit un tableau vide : []
Ce qui est logique il n'y a pas de liaison depuis cet ordinateur.
Cependant en cherchant dans le forum, j'avais cru comprendre que cela devait me donner les champs sur la liaison, pour m'aider à le construire.
Si je fait un POST sur la même URL, avec en body {"input": { "computers_id":"2628","monitors_id":"1625" }}
je reçoit :
[
"ERROR_GLPI_ADD",
"Vous n'avez pas les droits requis pour réaliser cette action."
]
Le compte utilisé est admin, et même en lui donnant des droits superadmin cela ne change pas le message d'erreur.
Je suis presque certain que mon appel n'est pas bon, mais je ne sais plus où trouver l'information.
Last edited by jbhenry (2018-09-13 15:45:08)
Offline
Bonjour,
il vous manque au moins une info dans le input : itemtype : Monitor
{"input": {"items_id": 8730,"computers_id": 7269,"itemtype": "Monitor"}}
edit: après plusieurs essais j'ai également eu le message ERROR_GLPI_ADD et en allant sur l'interface graphique glpi(sans utiliser l'API) je n'ai pas pu l'ajouter non plus. je n'ai pas trouvé la cause.
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
Effectivement, la bonne construction est :
POST http://my_glpi_url/glpi/apirest.php/Computer/2628/Computer_Item
{"input": {"computers_id": 2628,"itemtype": "Monitor","items_id": 1625}}
Merci.
Offline
Par contre j'ai une erreur ERROR_GLPI_ADD si j'essaye de créer un lien entre un Computer et un Monitor alors que le Monitor a déjà un lien vers un autre Computer.
Comment faire alors pour mettre à jour le lien entre un Computer et un Monitor ?
Question qui va suivre : Comment fait-on pour détruire un lien entre un monitor et un computer ?
Last edited by jbhenry (2018-09-13 14:26:41)
Offline
logique, un pc peut avoir plusieurs ecrans mais un ecran un seul PC (a la fois)
sinon c'est qu'il y a un boitier type KVM entre les 2 non ?
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
Mince les réponses se croisent.
C'est logique qu'un écran ne peut pas être sur deux ordi à la fois.
J'aurais espéré que GLPI gère ça tout seul en auto, me supprime l'ancien lien à la création d'un nouveau ...
Offline
pour effacer un item :
$url=$api_url . "/Computer/7269/Computer_item/128600";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
$json = curl_exec($ch);
curl_close ($ch);
pour récupérer l'id de l'item :
avec un GET sur $url=$api_url . "/Computer/7269/Computer_item/";
vous récuperez tous les items associés, parcourez le tableau pour retrouver les moniteurs et les ID
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
C'est un peu lourd de récupérer toutes les connexions et de chercher la bonne pour avoir l'id pour la supprimer.
Mais ça marche bien.
Merci beaucoup
Pour l'exemple de la solution avec postman
GET apirest.php/Monitor/1495/Computer_Item
résultat :
[
{
"id": 24393,
"items_id": 1495,
"computers_id": 2628,
"itemtype": "monitor",
"is_deleted": 0,
"is_dynamic": 0,
"links": [
{
"rel": "monitor",
"href": "apirest.php/monitor/1495"
},
{
"rel": "Computer",
"href": "/apirest.php/Computer/2628"
}
]
}
]
DELETE apirest.php/Monitor/1495/Computer_Item/24393
résultat :
[
{
"24393": true,
"message": ""
}
]
Last edited by jbhenry (2018-09-13 15:17:41)
Offline