API de REST pública de canalización de datos de Microsoft Fabric (versión preliminar)
Importante
La API de Microsoft Fabric para Data Factory está actualmente en versión preliminar pública. Esta información está relacionada con un producto en versión preliminar que puede modificarse considerablemente antes de su lanzamiento. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información que se ofrece aquí.
En Microsoft Fabric, las API de Data Factory constan únicamente de operaciones CRUD para canalizaciones y flujos de datos. Actualmente, solo se admiten canalizaciones de datos. Las API de flujos de datos se publicarán más adelante. Otras áreas comunes para los proyectos de integración de datos se encuentran en API independientes: programaciones, supervisión, conexiones, tienen sus propias API en Fabric. La documentación de referencia en línea principal de las API de REST de Microsoft Fabric se puede encontrar en las referencias de la API REST de Microsoft Fabric. Consulte también la API de elementos principales y el programador de trabajos.
Obtenga un token de autorización
Opción 1: Uso de MSAL.Net
Guía de inicio rápido de la API de Fabric: API de REST de Microsoft Fabric
Use MSAL.Net para adquirir un token de Microsoft Entra ID para el servicio Fabric con los siguientes ámbitos: Workspace.ReadWrite.All, Item.ReadWrite.All. Para obtener más información sobre la adquisición de tokens con MSAL.Net, consulte Adquisición de tokens: Biblioteca de autenticación de Microsoft para .NET.
Pegue el identificador de aplicación (cliente) que copió anteriormente y péguelo para la variable ClientId.
Opción 2: usar el Portal de Fabric
Inicie sesión en Fabric Portal para el Inquilino que desea probar y presione F12 para entrar en el modo para desarrolladores del navegador. En la consola, ejecute:
powerBIAccessToken
Copie el token y péguelo para la variable ClientId.
Definición de elemento con codificación base64 de carga
- Use Codificación y descodificación de Base64 para codificar el json.
- Asegúrese de que no esté activada la casilla Realizar codificación segura de url.
- Puede obtener las definiciones de canalización a través de la pestaña Ver >, Ver código JSON en la interfaz de usuario de Fabric.
{
"name": "Pipeline_1_updated",
"objectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"properties": {
"description": "this is the description",
"activities": [
{
"name": "Wait1",
"type": "Wait",
"dependsOn": [],
"typeProperties": {
"waitTimeInSeconds": 240
}
}
],
"annotations": [],
"lastModifiedByObjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"lastPublishTime": "2024-02-01T17:28:02Z"
}
}
Tome el objeto propiedades y rodéelo entre llaves { } , para que la carga de definición de elemento REST sea:
{
"properties": {
"description": "this is the description",
"activities": [
{
"name": "Wait1",
"type": "Wait",
"dependsOn": [],
"typeProperties": {
"waitTimeInSeconds": 240
}
}
],
"annotations": [],
"lastModifiedByObjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"lastPublishTime": "2024-02-01T17:28:02Z"
}
}
Crear elemento
API de REST: elementos: crear elemento
Ejemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Cuerpo:
{
"displayName": "pipeline_1",
"type": "DataPipeline"
}
Nota:
La documentación indica que solo hay dos propiedades necesarias: nombre de visualización y tipo. Actualmente, carga de trabajo-DI no admite la creación sin tener también una definición. La corrección de este requisito erróneo se está implementando actualmente. Por ahora, puede enviar la misma definición predeterminada que usa la interfaz de usuario de Fabric: ‘{"properties":{"activities":[]}}’
JSON modificado, incluida la definición:
{
"displayName": "pipeline_1",
"type": "DataPipeline",
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Respuesta 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"description": "",
"workspaceId": "<Your WS Id>"
}
Eliminar elemento
API de REST: elementos: eliminar elemento
Ejemplo:
DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Respuesta 200: (Sin cuerpo)
Obtener elemento
API de REST: elementos: obtener elemento
Ejemplo:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Respuesta 200:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"workspaceId": "<your WS Id>"
}
Obtención de la definición de elementos
API de REST: elementos: obtener la definición de elemento
Ejemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition
Respuesta 200:
{
"definition": {
"parts":[
{
"path": "pipeline-content.json",
"payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==",
"payloadType": "InlineBase64"
}
]
}
}
Enumeración de elementos
API de REST: elementos: lista de elementos
Ejemplo:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Respuesta 200:
{
"value": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SemanticModel",
"displayName": "deata_lh",
"description": "",
"workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SQLEndpoint",
"displayName": "deata_lh",
"description": "",
"workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "Lakehouse",
"displayName": "deata_lh",
"description": "",
"workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"description": "",
"workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
]
}
Actualizar elemento
API de REST: elementos: actualizar elemento
Ejemplo:
PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Cuerpo:
{
"displayName": "Pipeline_1_updated",
"description": "This is the description."
}
Respuesta 200:
{
"id": "<pipeline id>",
"type": "DataPipeline",
"displayName": "Pipeline_1_updated",
"description": "This is the description.",
"workspaceId": "<Your WS id>"
}
Actualización de la definición de elementos
API de REST: elementos: actualización de la definición de elemento
Ejemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition
Cuerpo:
{
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Respuesta 200: (Sin cuerpo)
Ejecución del trabajo de elemento a petición
API de REST: elementos: ejecución del trabajo de elemento a petición
Ejemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Respuesta 202: (Sin cuerpo)
Ejemplo con dos valores de parámetro:
Aquí tenemos una actividad de Espera con un parámetro denominado param_waitsec para especificar el número de segundos que se van a esperar.
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Cuerpo:
{
"executionData": {
"parameters": {
"param_waitsec": "10"
}
}
}
Respuesta 202: (Sin cuerpo)
Nota:
Actualmente no se devuelve ningún cuerpo, pero se debe devolver el identificador de trabajo. Durante la versión preliminar, se puede encontrar en los encabezados devueltos, en la propiedad "Ubicación".
Obtención de la instancia de trabajo del elemento
API de REST: elementos: obtención de la instancia de trabajo de elemento
Ejemplo:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>
Respuesta 200:
{
"id": "4511ffcd-a9f6-4f75-91a9-9ceab08d7539",
"itemId": "2bb9fe4a-0a84-4725-a01f-7ac4e6850259",
"jobType": "Pipeline",
"invokeType": "Manual",
"status": "Completed",
"failureReason": null,
"rootActivityId": "f14bdd95-2cff-4451-b839-bea81509126d",
"startTimeUtc": "2024-02-01T03:03:19.8361605",
"endTimeUtc": "2024-02-01T03:05:00.3433333"
}
Cancelación de la instancia de trabajo del elemento
API de REST: elementos: cancelar la instancia de trabajo de elemento
Ejemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel
Respuesta 202: (Sin cuerpo)
Nota:
Después de cancelar un trabajo, puede comprobar el estado llamando a Obtener instancia de trabajo de elemento o en Ver historial de ejecución en la interfaz de usuario de Fabric.
Ejecuciones de actividad de consulta
Ejemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns
Cuerpo:
{
"filters":[],
"orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
"lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
"lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}
Nota:
El "id. de trabajo" es el mismo identificador creado y usado en las API públicas de Job Scheduler
Respuesta 200:
[
{
"pipelineName": "ca91f97e-5bdd-4fe1-b39a-1f134f26a701",
"pipelineRunId": "f2fa7a0e-586d-4d73-a2b4-7ddc785243ae",
"activityName": "Wait1",
"activityType": "Wait",
"activityRunId": "ef579d3d-d23e-477a-8150-d6e15d66a532",
"linkedServiceName": "",
"status": "Succeeded",
"activityRunStart": "2024-05-23T13:43:03.6397566Z",
"activityRunEnd": "2024-05-23T13:43:31.3906179Z",
"durationInMs": 27750,
"input": {
"waitTimeInSeconds": 27
},
"output": {},
"error": {
"errorCode": "",
"message": "",
"failureType": "",
"target": "Wait1",
"details": ""
},
"retryAttempt": null,
"iterationHash": "",
"userProperties": {},
"recoveryStatus": "None",
"integrationRuntimeNames": null,
"executionDetails": null,
"id": "/SUBSCRIPTIONS/4DA86268-68B8-4B08-AD58-A7AEE54138CD/RESOURCEGROUPS/4DA86268-68B8-4B08-AD58-A7AEE54138CD/PROVIDERS/MICROSOFT.TRIDENT/WORKSPACES/4DA86268-68B8-4B08-AD58-A7AEE54138CD/pipelineruns/f2fa7a0e-586d-4d73-a2b4-7ddc785243ae/activityruns/ef579d3d-d23e-477a-8150-d6e15d66a532"
}
]
Restricciones conocidas
- La autenticación de entidad de servicio (SPN) no se admite actualmente.