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
etUnInstall
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} |