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 de versión preliminar que puede modificarse sustancialmente 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 aún no están disponibles. 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.

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: CreateDataPipeline:

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, Workload-DI tampoco admite la creación sin 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 Location.

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 si llama a Obtener instancia de trabajo de elemento o si examina 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": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "activityName": "Wait1",
        "activityType": "Wait",
        "activityRunId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
        "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/PROVIDERS/MICROSOFT.TRIDENT/WORKSPACES/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/pipelineruns/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/activityruns/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a"
    }
]

Restricciones conocidas

  • La autenticación de entidad de servicio (SPN) no se admite actualmente.