API ALM (Application Lifecycle Management)

Les API ALM sont un moyen simple de gérer le déploiement de vos solutions et compléments SharePoint Framework sur l’ensemble de votre client. Elles prennent en charge les fonctionnalités suivantes :

  • Ajout d’une solution SharePoint Framework ou d’un complément SharePoint au catalogue d’applications client ou de la collection de sites.
  • Suppression d’une solution SharePoint Framework ou d’un complément SharePoint du catalogue d’applications client ou de la collection de sites.
  • Activation de la solution SharePoint Framework ou du complément SharePoint pour qu’il soit disponible pour installation dans le catalogue d’applications client ou de la collection de sites.
  • Désactivation de la solution SharePoint Framework ou du complément SharePoint pour qu’il ne soit pas disponible pour installation dans le catalogue d’applications client ou de la collection de sites.
  • Installation de la solution SharePoint Framework ou du complément SharePoint à partir du catalogue d’applications client ou de la collection de sites sur un site.
  • Mise à niveau de la solution SharePoint Framework ou du complément SharePoint sur un site, qui comporte une version plus récente disponible dans le catalogue d’applications client ou de la collection de sites.
  • Désinstallation d’une solution SharePoint Framework ou d’un complément SharePoint du site.
  • Répertorie et obtient l’ensemble des détails sur les solutions SharePoint Framework ou les compléments SharePoint dans le catalogue d’applications client ou de la collection de sites.

Les API ALM permettent d’effectuer exactement les mêmes opérations que celles disponibles depuis la perspective de l’interface utilisateur. Lorsque ces API sont utilisés, toutes les actions classiques sont effectuées. Voici quelques-unes des caractéristiques des API ALM :

  • Les événements Install et UnInstall sont déclenchés par les compléments hébergés par le fournisseur lorsque les opérations correspondantes ont lieu.
  • Les API ALM prennent uniquement en charge les opérations basées sur l’application pour les solutions SharePoint Framework.

Les API ALM sont prises en charge pour les collections de sites étendues au locataire et catalogue d’applications de collection de sites. Utilisez l’URL du catalogue d’applications correspondant pour cibler un catalogue d’applications spécifique. Vous devez d’abord activer un catalogue d’applications de collection de sites avant de le cibler avec les actions documentées sur cette page.

Importante

Les autorisations limitées au locataire qui nécessitent desautorisations d’administration de client ne sont pas prises en charge avec les API ALM.

Options d’utilisation des API ALM

Les API ALM sont fournies en mode natif à l’aide d’API REST, mais il existe des extensions de modèle objet côté client (CSOM), des applets de commande PowerShell et l’interface CLI multiplateforme pour Microsoft 365 disponibles via les canaux de la communauté PnP SharePoint.

API REST SharePoint

Les API ALM sont fournies en mode natif en tant que points de terminaison sur l’API REST SharePoint.

Le catalogue d’applications doit être inclus dans toutes les requêtes HTTP lors de l’utilisation de l’API REST, comme indiqué dans les exemples ci-dessous. Remplacez l’espace réservé {app-catalog-scope} dans le point de terminaison par l’étendue du catalogue d’applications. Les options d’étendue disponibles sont tenantappcatalog et sitecollectionappcatalog.

Par exemple :

Portée Point de terminaison
client https://contoso.sharepoint.com/sites/AppCatalog/_api/web/tenantappcatalog/{command}
collection de sites https://contoso.sharepoint.com/sites/Marketing/_api/web/sitecollectionappcatalog/{command}
  • lors du ciblage du catalogue d’applications client situé à https://contoso.sharepoint.com/sites/AppCatalog, le point de terminaison serait **

En savoir plus ici : l’API REST SharePoint

Modèle CSOM PnP (également appelé : PnP Sites Core)

Le modèle CSOM PnP implémente les API ALM en appelant l’API REST SharePoint.

Avant d’utiliser l’une des API ALM dans le modèle CSOM PnP, vous devez obtenir un contexte client authentifié à l’aide de la Microsoft.SharePointOnline.CSOM. Utilisez ensuite le contexte client authentifié pour obtenir une instance de l’objet AppManager du CSOM PnP pour appeler les commandes ALM :

using Microsoft.SharePoint.Client;
using OfficeDevPnP.Core.ALM;

// ...

using (var context = new ClientContext(webURL)) {
  context.Credentials = new SharePointOnlineCredentials(username, securePassword);
  var appManager = new AppManager(context);
  // execute PnP CSOM ALM command
}

Dans toutes les méthodes PnP Core, il est supposé que la requête cible le catalogue d’applications client dans le locataire auquel vous vous connectez à l’aide de l’objet ClientContext CSOM SharePoint. vous pouvez remplacer l’étendue de toutes les commandes par un argument d’étendue facultatif, par exemple

appManager.Install('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx', AppCatalogScope.Site);

En savoir plus ici : PowerShell PnP

PnP PowerShell

PnP PowerShell implémente les API ALM en appelant le modèle CSOM PnP.

Avant d’utiliser l’une des applets de commande dans le module PowerShell PnP, vous devez d’abord vous connecter à SharePoint Online à l’aide de l’applet de commande Connect-PnPOnline.

Dans toutes les applets de commande PowerShell PnP, il est supposé que la requête cible le catalogue d’applications client dans le locataire auquel vous vous connectez à l’aide de l’applet de commande Connect-PnPOnline. Vous pouvez remplacer l’étendue de la commande à l’aide du paramètre -Scope pour cibler un catalogue d’applications de collection de sites.

En savoir plus ici : PowerShell PnP

Remarque

PnP PowerShell est une solution open source pour laquelle un support est assuré par la communauté active. Il n’existe pas de contrat SLA Microsoft pour le support technique relatif à cet outil open source.

Interface CLI pour Microsoft 365

L’interface CLI pour Microsoft 365 est une interface de ligne de commande multiplateforme qui peut être utilisée sur n’importe quelle plateforme, y compris Windows, macOS et Linux. L’interface CLI implémente les API ALM en appelant l’API REST SharePoint.

Avant d’utiliser l’une des commandes de l’interface CLI pour Microsoft 365, vous devez d’abord connecter votre client Microsoft 365 à l’aide de la commande m365 login.

En savoir plus ici : CLI pour Microsoft 365

Remarque

L’interface CLI pour Microsoft 365 est une solution open source pour laquelle un support est assuré par la communauté active. Il n’existe pas de contrat SLA Microsoft pour le support technique relatif à cet outil open source.

Ajouter un package de solution

Tout d’abord, ajoutez un package d’application (*.sppkg ou *.app) à un catalogue d’applications afin de le rendre disponible pour les sites SharePoint.

Requête HTTP

POST /_api/web/{scope}appcatalog/Add(overwrite=true, url='sharepoint-solution-package.sppkg')

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata
Content-Type application/json
X-RequestDigest {form digest}
binaryStringRequestBody true

Corps de la demande

Tableau d’octets du fichier

Déployer des packages de solutions

Le déploiement de la solution le rend disponible pour l’installation sur les sites.

Requête HTTP

POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Deploy

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata
Content-Type application/json;odata=nometadata;charset=utf-8
X-RequestDigest {form digest}

Corps de la demande

{
  "skipFeatureDeployment": true
}

Remarque

Cette opération ne peut être effectuée qu’après avoir appelé le point de terminaison Add et avant que vous puissiez installer des packages sur des sites spécifiques.

Importante

Le déploiement de plusieurs packages en parallèle n’est pas pris en charge. Veillez à sérialiser vos opérations de déploiement pour éviter les erreurs de déploiement.

Retirer les packages de solution

Il s’agit de l’inverse de l’étape déployer ci-dessus. Une fois retirée, la solution ne peut pas être installée sur les sites.

Requête HTTP

POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Retract

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata
X-RequestDigest {form digest}

Remarque

Cette opération bloque l’installation de la solution sur les sites et désactive les installations existantes.

Supprimer les packages de solution

Il s’agit de l’inverse de l'étape ajouter ci-dessus. Supprimé du catalogue d’applications, la solution ne peut pas être déployée.

Requête HTTP

POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Remove

Remarque

Si l’opération de retrait n’est pas effectuée avant l’opération de suppression, la solution est retirée automatiquement.

Répertorier les packages disponibles

Cette opération retourne la liste de toutes les solutions ou compléments SharePoint Framework disponibles dans le catalogue d’applications.

Requête HTTP

GET /_api/web/{scope}appcatalog/AvailableApps

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata

Réponse

{
  "value": [
    {
      "AadAppId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
      "ContainsTenantWideExtension": false,
      "CurrentVersionDeployed": true,
      "Deployed": true,
      "ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
      "IsClientSideSolution": true,
      "IsEnabled": true,
      "IsPackageDefaultSkipFeatureDeployment": false,
      "IsValidAppPackage": true,
      "ShortDescription": "",
      "SkipDeploymentFeature": false,
      "Title": "sharepoint-solution-package"
    },
    {
      "AadAppId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
      "ContainsTenantWideExtension": false,
      "CurrentVersionDeployed": true,
      "Deployed": true,
      "ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
      "IsClientSideSolution": true,
      "IsEnabled": true,
      "IsPackageDefaultSkipFeatureDeployment": false,
      "IsValidAppPackage": true,
      "ShortDescription": "",
      "SkipDeploymentFeature": false,
      "Title": "sharepoint-solution-package2"
    }
  ]
}

Obtenir une solution spécifique

Cette action renvoie des détails sur une solution ou un complément SharePoint Framework spécifique disponible dans le catalogue d’applications.

Requête HTTP

GET /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata

Réponse

{
  "AadAppId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
  "ContainsTenantWideExtension": false,
  "CurrentVersionDeployed": true,
  "Deployed": true,
  "ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
  "IsClientSideSolution": true,
  "IsEnabled": true,
  "IsPackageDefaultSkipFeatureDeployment": false,
  "IsValidAppPackage": true,
  "ShortDescription": "",
  "SkipDeploymentFeature": false,
  "Title": "sharepoint-solution-package"
}

Installer le package de solution dans un site

Installez un package de solution du catalogue d’applications doté d’un identifiant spécifique sur le site en fonction du contexte de l’URL.

Requête HTTP

POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Install

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata
X-RequestDigest {form digest}

Mettre à niveau les packages de solutions installés

Mettez à niveau un package de solution du site vers une version plus récente disponible dans le catalogue d’applications.

Requête HTTP

POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Upgrade

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata
X-RequestDigest {form digest}

Désinstaller des packages de solutions à partir d’un site

Cette action est l’inverse de la commande installer ci-dessus.

Remarque

Lorsque vous utilisez la désinstallation d’un package de solution à partir du site avec l’une des méthodes ci-dessous, il est définitivement supprimé . il n’est pas placé dans la corbeille.

Requête HTTP

POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Uninstall

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata
X-RequestDigest {form digest}

Synchroniser une solution avec le catalogue d’applications Microsoft Teams

Cette action nécessite que vous référiez l’ID d’élément de liste de la solution dans le site du catalogue d’applications.

Requête HTTP

POST /_api/web/{scope}appcatalog/SyncSolutionToTeams(id=xxxxx)

En-têtes de demande

En-tête Valeur
Autorisation Bearer {token}
Accepter application/json;odata=nometadata
X-RequestDigest {form digest}

Voir aussi