API de administración del ciclo de vida de las aplicaciones (ALM)
Las API de ALM proporcionan API sencillas para administrar la implementación de complementos y soluciones de SharePoint Framework en un espacio empresarial. Las API de ALM admiten las funcionalidades siguientes:
- Agregar una solución de SharePoint Framework o un complemento de SharePoint al catálogo de aplicaciones de la colección de sitios o el espacio empresarial.
- Quitar una solución de SharePoint Framework o un complemento de SharePoint del catálogo de aplicaciones de la colección de sitios o el espacio empresarial.
- Habilitar una solución de SharePoint Framework o un complemento de SharePoint para que estén disponibles para su instalación en el catálogo de aplicaciones de la colección de sitios o el espacio empresarial.
- Deshabilitar una solución de SharePoint Framework o un complemento de SharePoint para que no estén disponibles para su instalación en el catálogo de aplicaciones de la colección de sitios o el espacio empresarial.
- Instalar en un sitio una solución de SharePoint Framework o un complemento de SharePoint del catálogo de aplicaciones de la colección de sitios o el espacio empresarial.
- Actualizar una solución de SharePoint Framework o un complemento de SharePoint en un sitio que tiene una versión más reciente disponible en el catálogo de aplicaciones de la colección de sitios o el espacio empresarial.
- Desinstalar una solución de SharePoint Framework o un complemento de SharePoint de un sitio.
- Enumerar todo y obtener detalles de las soluciones de SharePoint Framework o complementos de SharePoint en el catálogo de aplicaciones de la colección de sitios o el espacio empresarial.
Las API de ALM se pueden usar para realizar exactamente las mismas operaciones que están disponibles desde la perspectiva de una interfaz de usuario. Al usar estas API, se ejecutan todas las acciones típicas. Estas son algunas de las características de las API de ALM:
- Los eventos
Install
yUnInstall
se activan para los complementos hospedados por el proveedor cuando se producen las operaciones correspondientes. - Las API de ALM admiten operaciones basadas en aplicaciones solo para soluciones de SharePoint Framework.
Las API de ALM se admiten para las colecciones de sitios con ámbito de espacio empresarial y catálogo de aplicaciones de colección de sitios. Use la dirección URL del catálogo de aplicaciones correspondiente para dirigirse a un catálogo de aplicaciones específico. Primero debe habilitar un catálogo de aplicaciones de colección de sitios antes de seleccionarlo como destino con las acciones documentadas en esta página.
Importante
Los permisos de ámbito del espacio empresarial que requieren permisos de administrador del espacio empresarial no son compatibles con las API de ALM.
Opciones para trabajar con las API de ALM
Las API de ALM se proporcionan de forma nativa mediante las API de REST, pero hay extensiones del modelo de objetos de cliente (CSOM) y cmdlets de PowerShell adicionales y la CLI de Microsoft 365 multiplataforma que están disponibles a través de los canales de la comunidad de SharePoint PnP.
API de REST de SharePoint
Las API de ALM se proporcionan de forma nativa como puntos de conexión en la API rest de SharePoint.
El catálogo de aplicaciones debe incluirse en todas las solicitudes HTTP cuando se usa la API de REST, como se muestra en los ejemplos siguientes. Reemplace el marcador de posición {app-catalog-scope}
en el punto de conexión por el ámbito del catálogo de aplicaciones. Las opciones de ámbito disponibles son tenantappcatalog
y sitecollectionappcatalog
.
Por ejemplo:
Ámbito | Punto de conexión |
---|---|
espacio empresarial | https://contoso.sharepoint.com/sites/AppCatalog/_api/web/tenantappcatalog/{command} |
colección de sitios | https://contoso.sharepoint.com/sites/Marketing/_api/web/sitecollectionappcatalog/{command} |
- al establecer como destino el catálogo de aplicaciones del espacio empresarial ubicado en
https://contoso.sharepoint.com/sites/AppCatalog
, el punto de conexión sería **
Más información aquí: API de REST de SharePoint
CSOM de PnP (también conocido como: PnP Sites Core)
El CSOM de PnP implementa las API de ALM mediante una llamada a la API de REST de SharePoint.
Antes de usar cualquiera de las API de ALM en el CSOM de PnP, debe obtener un contexto de cliente autenticado mediante el Microsoft.SharePointOnline.CSOM. Después, use el contexto de cliente autenticado para obtener una instancia del objeto AppManager del CSOM de PnP para llamar a los comandos de 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
}
En todos los métodos de PnP Core, se supone que la solicitud tiene como destino el catálogo de aplicaciones de espacio empresarial en el espacio empresarial al que se conecta mediante el objeto ClientContext
de CSOM de SharePoint. puede invalidar el ámbito de todos los comandos con un argumento de ámbito opcional, por ejemplo
appManager.Install('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx', AppCatalogScope.Site);
Más información aquí: PowerShell de PnP
PowerShell de PnP
PowerShell de PnP implementa las API de ALM mediante una llamada al CSOM de PnP.
Antes de usar cualquiera de los cmdlets del módulo PowerShell de PnP, primero debe conectarse a SharePoint Online mediante el cmdlet Connect-PnPOnline
.
En todos los cmdlets de PowerShell de PnP, se supone que la solicitud tiene como destino el catálogo de aplicaciones de espacio empresarial del espacio empresarial al que se conecta mediante el cmdlet Connect-PnPOnline
. Puede invalidar el ámbito del comando mediante el parámetro -Scope
para establecer como destino un catálogo de aplicaciones de colección de sitios.
Más información aquí: PowerShell de PnP
Nota:
PnP PowerShell es una solución de código abierto con una comunidad activa que ofrece su soporte. No hay ningún contrato de nivel de servicio para el soporte de la herramienta de código abierto de Microsoft.
CLI de Microsoft 365
La CLI de Microsoft 365 es una interfaz de línea de comandos multiplataforma que se puede usar en cualquier plataforma, incluidas Windows, macOS y Linux. La CLI implementa las API de ALM mediante una llamada a la API de REST de SharePoint.
Antes de usar cualquiera de los comandos de la CLI de Microsoft 365, primero debe conectar el espacio empresarial de Microsoft 365 mediante el comando m365 login
.
Más información aquí: CLI de Microsoft 365
Nota:
La CLI de Microsoft 365 es una solución de código abierto con una comunidad activa que ofrece su soporte. No hay ningún contrato de nivel de servicio para el soporte de la herramienta de código abierto de Microsoft.
Agregar paquete de solución
En primer lugar, agregue un paquete de aplicación (*.sppkg o *.app) a un catálogo de aplicaciones para que esté disponible para los sitios de SharePoint.
Solicitud HTTP
POST /_api/web/{scope}appcatalog/Add(overwrite=true, url='sharepoint-solution-package.sppkg')
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
Content-Type | application/json |
X-RequestDigest | {form digest} |
binaryStringRequestBody | true |
Request body
Matriz de bytes del archivo
Implementar paquetes de solución
La implementación de la solución hace que esté disponible para su instalación en sitios.
Solicitud HTTP
POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Deploy
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
Content-Type | application/json;odata=nometadata;charset=utf-8 |
X-RequestDigest | {form digest} |
Request body
{
"skipFeatureDeployment": true
}
Nota:
Esta operación solo se puede completar después de llamar al punto de conexión de Add
y antes de poder instalar paquetes en sitios específicos.
Importante
No se admite la implementación de varios paquetes en paralelo. Asegúrese de serializar las operaciones de implementación para evitar errores de implementación.
Retirar paquetes de solución
Este es el opuesto del paso para implementar anterior. Una vez retirada, la solución no se puede instalar en los sitios.
Solicitud HTTP
POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Retract
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
X-RequestDigest | {form digest} |
Nota:
Esta operación bloqueará la instalación de la solución en sitios y deshabilitará las instalaciones existentes.
Quitar paquetes de solución
Este es el opuesto del paso para agregar anterior. Una vez quitada del catálogo de aplicaciones, la solución no se puede implementar.
Solicitud HTTP
POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Remove
Nota:
Si no se realiza la operación de retirada antes de la operación de eliminación, la solución se retira de forma automática.
Enumerar paquetes disponibles
Esta operación devolverá una lista de todas las soluciones o complementos de SharePoint Framework disponibles en el catálogo de aplicaciones.
Solicitud HTTP
GET /_api/web/{scope}appcatalog/AvailableApps
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
Respuesta
{
"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"
}
]
}
Obtener una solución específica
Esta acción devolverá detalles sobre una solución o complemento de SharePoint Framework específico disponible en el catálogo de aplicaciones.
Solicitud HTTP
GET /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
Respuesta
{
"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"
}
Instalar el paquete de solución en un sitio
Instale un paquete de solución con un identificador específico del catálogo de aplicaciones en el sitio, según el contexto de la URL.
Solicitud HTTP
POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Install
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
X-RequestDigest | {form digest} |
Actualizar paquetes de solución instalados
Actualizar un paquete de solución desde el sitio a una versión más reciente disponible en el catálogo de aplicaciones.
Solicitud HTTP
POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Upgrade
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
X-RequestDigest | {form digest} |
Desinstalar paquetes de solución de un sitio
Esta acción es la opuesta del comando de instalación anterior.
Nota:
Cuando se usa la desinstalación de un paquete de solución del sitio con cualquiera de los métodos siguientes, se elimina permanentemente (no se coloca en la papelera de reciclaje).
Solicitud HTTP
POST /_api/web/{scope}appcatalog/AvailableApps/GetById('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')/Uninstall
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
X-RequestDigest | {form digest} |
Sincronizar una solución con el catálogo de aplicaciones de Microsoft Teams
Esta acción requiere que haga referencia al Id. del elemento de lista de la solución en el sitio del catálogo de aplicaciones.
Solicitud HTTP
POST /_api/web/{scope}appcatalog/SyncSolutionToTeams(id=xxxxx)
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Bearer {token} |
Accept | application/json;odata=nometadata |
X-RequestDigest | {form digest} |