API version 3
Cette mise à jour de l’API contient:
- 4 nouvelles API pour répondre aux demandes de nos utilisateurs
- des simplifications des structures des réponses de certaines API existantes
Il s’agit d’une nouvelle version de l’API car certaines modifications ne sont pas rétrocompatibles.
La version 2 de l’API sera maintenue jusqu’au 30 septembre 2021 afin de laisser le temps de migrer les codes client. Une communication a été envoyée aux contacts techniques inscrits sur la mailing liste pour les informer de changements minimes (suppression de champs superflus) dans les réponses de la version 2 qui prendront effet dès la mise en ligne de la version 3.
Le guide de migration ci-dessous a pour but de faciliter la mise à jour les codes des clients de l’API.
La date prévue de mise en ligne de la version 3 de l’API est le 3 juin.
4 Nouvelles API
Les nouvelles API sont:
- Project Configuration fournit la configuration des profils pour un projet (cf. documentation)
- Organizational Breakdown Structure retourne la structure de l’organisation (cf. documentation)
- List of Skill Profiles retourne la liste des profils configurés dans l’administration (cf. documentation)
- List of Non-Project Activities retourne la liste des autres activités et des indisponibilités configurées dans l’administration (cf. documentation)
Guide de migration de la v2 à la v3
Les API existantes conservent leur interface et leurs paramètres. Pour passer à la v3, il suffit de remplacer le v2 par v3 dans l’url de l’API.
https://pma.timeperformance.com/api/v2/users.json ⇓ https://pma.timeperformance.com/api/v3/users.json
Pour certaines API, la structure des réponses a été légèrement modifiée pour la simplifier. Voici la liste de ces modifications ainsi que la liste des API impactées.
Modif. 1: L’unité est représentée par la chaîne de caractères de son symbole au lieu d’une structure.
costUnit: { id: 1948 name: "Euro" type: "COST" symbol: "€" } ⇓ costUnit: "€"
Modif. 2: L’attribut « state » d’un projet est représenté par son nom au lieu d’une structure.
state: { val: 24 str: "En Cours" } ⇓ state: "En Cours"
Modif. 3: Les attributs de type énumération (liste fixe de valeurs) sont représentés par leur code au lieu d’une structure code + libellé.
rights: { val: "MEMBER" str: "Équipe" } ⇓ rights: "MEMBER"
Modif. 4: Remplacement dans la structure d’un utilisateur des attributs obsName et obsPath par une structure.
{... obsName: "Recherche et développement" obsPath: "ACME » Direction des Systèmes d'Information » Recherche et développement" } ⇓ {... obs: { id: 39 name: "Recherche et développement" path: "ACME » Direction des Systèmes d'Information » Recherche et développement" type: "obs" externalId: "RD-1" } }
Modif. 5: Pour un utilisateur, fusion des structures cost et rate en une seule .
{... cost: { val: 624 str: "624 €" unit: "€" } rate: { val: "DAILY_VAR" str: "par jour" } } ⇓ {... costRate: { val: 624 unit: "€" rateMode: "DAILY_VAR" } }
Modif. 6: Pour les indicateurs avec une unité, suppression de la chaîne de caractères représentant le nombre formatté.
... value: { val: 306671.32391131297 str: "306 671 €" unit: "€" } ... ⇓ ... value: { val: 306671.32391131297 unit: "€" } ...
Modif. 7: Dans la feuille de route d’un projet, simplification de la structure fournissant les estimations de charge par profil. (note: « unit » était redondant avec effortUnit à la racine de la feuille de route)
effortByProfile: [ { val: 30 str: "30" unit: "jh" profile: { id: 32 name: "Analyste" type: "resourceprofile" } effort: 30 } ...] ⇓ effortByProfile: [ { profile: { id: 32 name: "Analyste" type: "resourceprofile" } effort: 30 } ...]
Liste des API impactées
URL de l’API & numéro de la modification | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
/portfolios/…/progressReport.json | ✔ | ✔ | |||||
/projects.json | ✔ | ||||||
/projects/…/summary.json | ✔ | ||||||
/projects/…/team.json | ✔ | ✔ | ✔ | ||||
/projects/…/progressReport.json | ✔ | ✔ | |||||
/projects/…/expenses.json | ✔ | ||||||
/projects/…/actualsTimeseries | ✔ | ||||||
/projects/…/baselineReport.json | ✔ | ✔ | |||||
/projects/…/roadmap.json
|
✔ | ✔ | |||||
/users.json | ✔ | ✔ |