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 y UnInstall 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}

Vea también