Compartir a través de


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>dotnetcli

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 por ahora.