26 févr. 2015

ALM REST API

Etant donné le peu de documentation sur l'API REST d'ALM, voici quelques tips que j'ai trouvé en farfouillant dans les méandres d'Internet.


Avant tout, je tiens à préciser que cet article n'est pas issu directement de la documentation officielle d'ALM et ne tend pas à la remplacer. Par la même occasion, voici un très bon article qui m'a mis sur la piste : http://www.joecolantonio.com/2013/03/12/alm-how-to-get-started-using-the-alm-rest-api/ 

Pour se connecter via REST, voici l'interface : 
http://alm.votre-domaine/qcbin/rest/is-authenticated?login-form-required=y


Pour se déconnecter : 
http://alm.votre-domaine/qcbin/authentication-point/logout

ALM étant vaste, ce qui suit va concerner plus particulièrement les defects.

L'interface globale pour les defects est la suivante : 
http://alm.votre-domaine/qcbin/rest/domains/votreDomaine/projects/votreProjet/defects

Filtres

Il est possible de filtrer les defects en définissant des requêtes. 
Tout d'abord, un defect est une entité représentée par des champs. Par défaut, l'affichage se fait au format XML. Lors de l'affichage de l'ensemble des defects
http://alm.votre-domaine/qcbin/rest/domains/votreDomaine/projects/votreProjet/defects
les champs sont représentés par des éléments <field> dont le nom est accessible dans l'attribut name, ex :


<Field Name="name">...</Field>

Une fois que vous savez sur quels champs faire votre restriction, vous pouvez construire votre requête. Une requête se construit sur la base du paramètre query :

.../rest/domains/votreDomaine/projects/votreProjet/defects/?query={nomDuchamp[valeurDeRestriction];nomDuChampSuivant[valeurDeRestriction]}

Les restrictions sont définies entre accolades. Pour chaque champ, la valeur de restriction est spécifiée entre []. Les champs sont délimités par des ;
Voici un exemple concret :

http://alm.votre-domaine/qcbin/rest/domains/votreDomaine/projects/votreProjet/defects?query={creation-time[>=2014-01-01];id[=7607]}

Spécifier les champs

L'API permet aussi de spécifier les champs à afficher pour chaque defect.
Pour ce faire, les champs à afficher sont spécifiés dans le paramètre fields :

http://alm.votre-domaine/qcbin/rest/domains/votreDomaine/projects/votreProjet/defects?query={creation-time[>=2014-01-01];id[=7607]}&fields=id,description

Voilou :)