Les API REST Maximo Asset Management NextGen ont été introduites à partir de la version 7.6.0.2, représentant une évolution des API REST précédentes apparues après la version 7.1 de Maximo Asset Management. Également connue sous le nom d’API REST/JSON en raison de son support complet du format de données JSON, cette nouvelle API offre un ensemble de fonctionnalités avancées. Dans cet article, nous examinerons en détail deux méthodes spécifiques de cette API : MERGE et MERGESYNC. Nous explorerons leur utilisation pratique ainsi que les différences clés qu’elles présentent par rapport aux autres méthodes HTTP.
Vue d’ensemble des méthodes MERGE et MERGESYNC :
La méthode MERGE est utilisée pour fusionner des modifications dans une ressource existante, ce qui permet une mise à jour partielle sans avoir à envoyer toutes les données de la ressource. En parallèle, la méthode MERGESYNC, spécifique à Maximo IBM, offre une extension permettant de synchroniser les modifications en utilisant une logique de fusion définie.
Utilisation de la méthode MERGE :
La méthode MERGE est utilisée lorsque vous souhaitez mettre à jour une ressource existante en ne modifiant que certaines de ses propriétés. Au lieu de transmettre toutes les données de la ressource, vous pouvez simplement envoyer les propriétés modifiées. Maximo se chargera de fusionner ces modifications avec la ressource existante. Pour utiliser la méthode MERGE, il vous suffit d’envoyer une requête HTTP avec la méthode MERGE et de spécifier l’URL de la ressource cible. Dans le corps de la requête, vous incluez les propriétés modifiées au format JSON ou XML, selon votre préférence.
Prenons un exemple où nous ajoutons des sous-objets à une ressource. Dans cet exemple, nous ajouterons des compteurs à la ressource nouvellement créée, l’actif. L’API ci-dessous ajoute 2 compteurs à un actif :
POST /oslc/os/mxasset/{ID REST de l'actif}
x-method-override: PATCH
patchtype: MERGE
properties:*
{
"description": "Test Actif Création/MàJ",
"assetmeter": [
{
"metername": "METER-1",
"linearassetid": 0
},
{
"metername": "METER-2",
"linearassetid": 0
}
]
}
}
Dans cet exemple, nous envoyons une requête POST avec les en-têtes spécifiques “x-method-override: PATCH” et “patchtype: MERGE” pour indiquer que nous utilisons la méthode MERGE. Le corps de la requête contient les propriétés modifiées, y compris le champ “assetmeter” avec les détails des sous-objets que nous ajoutons.
Supposons que l’actif à mettre à jour avait déjà 3 compteurs existants, et que la requête contenait 1 compteur existant et 1 nouveau compteur. Après l’appel de fusion, cet actif aura 4 compteurs – avec un nouveau compteur créé et un autre compteur mis à jour.
Pour mettre en évidence la différence entre l’appel PATCH et l’appel MERGE, nous pouvons exécuter la même requête sans l’en-tête “patchtype” sur un autre actif similaire ayant 3 compteurs. Le serveur créera un nouveau compteur et mettra à jour le compteur existant de la même manière que dans l’appel MERGE. Contrairement à l’appel MERGE, il supprimera les compteurs qui ne sont pas présents dans la requête. Dans cet exemple, l’actif ne conservera que 2 compteurs (ceux qui sont dans la requête). Ainsi, dans la requête PATCH, le serveur supprimera tous les objets enfants qui ne se trouvent pas dans la charge utile de la requête.
Utilisation de la méthode MERGESYNC :
La méthode MERGESYNC ajoute une couche supplémentaire à la méthode MERGE en permettant une synchronisation bidirectionnelle entre le client et le serveur. Elle est souvent utilisée dans des scénarios de travail hors connexion, où les modifications locales doivent être synchronisées avec le serveur lorsque la connexion est rétablie. La méthode MERGESYNC suit une logique de fusion définie pour résoudre les conflits potentiels entre les modifications locales et les mises à jour du serveur. Pour utiliser la méthode MERGESYNC, vous devez envoyer une requête HTTP avec la méthode MERGESYNC et spécifier l’URL de la ressource cible, ainsi que les propriétés modifiées. Maximo effectuera la fusion en fonction de la logique prédéfinie.
Différences par rapport aux autres méthodes :
Les méthodes MERGE et MERGESYNC se distinguent des autres méthodes HTTP, telles que GET, POST, PUT et DELETE, par leur capacité à effectuer des mises à jour partielles sur les ressources existantes. Contrairement à la méthode PUT, qui remplace entièrement une ressource, les méthodes MERGE et MERGESYNC permettent une mise à jour sélective des propriétés modifiées uniquement. Cela peut réduire la quantité de données échangées entre le client et le serveur, améliorant ainsi les performances et l’efficacité des mises à jour.
En conclusion, les méthodes MERGE et MERGESYNC de l’API REST de Maximo IBM offrent des possibilités avancées de mise à jour des ressources, permettant des mises à jour sélectives et une synchronisation précise des données. En utilisant ces méthodes, les performances et l’efficacité des opérations de mise à jour peuvent être améliorées, contribuant ainsi à maintenir l’intégrité des informations et à offrir une expérience utilisateur optimale dans les applications basées sur Maximo IBM.