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 2020-11-18 20:13:22

virgin21800
Member
Registered: 2020-11-16
Posts: 1

Relations non reconnues par l'API

Bonjour,

Je suis chargée d'étudier la faisabilité d'intégration d'architectures pour la téléphonie IP de mon entreprise dans GLPI, le but étant ensuite d'appeler l'API afin d'en récupérer les données. J'ai compris que je devais pour cela adapter GLPI à nos besoins avec un plugin.

Je me suis donc appuyé sur votre documentation ainsi que le plugin 'Example' que vous mettez à disposition.

J'ai tout d'abord créé un dropdown 'PluginToipTypearchi' qui apparait bien dans les intitulés, puis j'ai créé un objet 'PluginToipInstallation' dérivé de la classe CommonDBTM avec dans ses champs une clé étrangère 'plugin_toip_typearchis_id' ainsi qu'une autre clé étrangère 'entities_id' liée à la table Entities de GLPI.

Lorsque j'appelle la fonction getAllItems de l'API sur PluginToipInstallation, je récupère bien toutes mes données mais l'API ne reconnait pas la classe 'PluginToipTypearchi' et indique :

'rel' => string 'UNKNOWN' (length=7)
'href' => string 'http://localhost/glpi/apirest.php/UNKNOWN/1' (length=43)

dans la partie 'links', alors qu'il reconnait bien la relation vers l'objet Entity. Du coup, lorsque j'ajoute à la fonction l'option expand_dropdowns il récupère bien 'Entité racine' pour 'entities_id' mais rien pour 'plugin_toip_typerarchis_id', ce qui me semble très logique.

J'ai essayé d'ajouter la fonction plugin_toip_getDatabaseRelations() dans inc/hook.php mais je n'obtiens pas de changement. Je me dis que j'ai du loupé quelque chose mais je ne vois pas dans votre documentation de réponse à ma question.

Ma fonction (qui n'est d'ailleurs peut-être pas la bonne) :

// Define dropdown relations
function plugin_toip_getDatabaseRelations() {
    $plugin = new Plugin();
    if ($plugin->isActivated("toip")) {
        return [
            "glpi_plugin_toip_typearchis" => ["glpi_plugin_toip" => "glpi_plugin_toip_typearchis_id"
        ];
    }
    return [];
}

Merci pour votre aide.

Last edited by virgin21800 (2020-11-19 12:54:59)

Offline

Board footer

Powered by FluxBB