API REST pública do pipeline de dados do Microsoft Fabric (Visualização)
Importante
A API do Microsoft Fabric para Data Factory está atualmente em visualização pública. Estas informações referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui.
No Microsoft Fabric, as APIs do Data Factory consistem apenas em operações CRUD para pipelines e fluxos de dados. Atualmente, apenas pipelines de dados são suportados. As APIs de fluxos de dados serão lançadas posteriormente. Outras áreas comuns para projetos de integração de dados estão em APIs separadas: agendas, monitoramento, conexões, têm suas próprias APIs no Fabric. A principal documentação de referência online para APIs REST do Microsoft Fabric pode ser encontrada em Referências da API REST do Microsoft Fabric. Consulte também a API de itens principais e o Agendador de tarefas.
Montagem de APIs públicas
As APIs públicas de montagem já estão disponíveis. Essas APIs permitem que você integre e acesse perfeitamente várias fontes de dados públicas em seus pipelines de dados.
Obter um token de autorização
Opção 1: Usando MSAL.Net
Guia de início rápido da API de malha - APIs REST do Microsoft Fabric
Use MSAL.Net para adquirir um token de ID do Microsoft Entra para o serviço Fabric com os seguintes escopos: Workspace.ReadWrite.All, Item.ReadWrite.All. Para obter mais informações sobre a aquisição de tokens com MSAL.Net a, consulte Aquisição de token - Biblioteca de autenticação da Microsoft para .NET.
Cole o ID do aplicativo (cliente) copiado anteriormente e cole-o para a variável ClientId.
Opção 2: Usando o Portal de Malha
Entre no Portal da Malha para o locatário que você deseja testar e pressione F12 para entrar no modo de desenvolvedor do navegador. No console lá, execute:
powerBIAccessToken
Copie o token e cole-o para a variável ClientId.
Definição de item com base de carga útil64 codificada
- Use Base64 Encode and Decode para codificar seu JSON.
- Verifique se a caixa Executar codificação segura de URL não está marcada.
- Você pode obter as definições de pipeline por meio da guia View -->View JSON code na interface do usuário 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"
}
}
Pegue o objeto de propriedades e envolva-os em chaves - { } - para que a carga útil de definição do item REST seja:
{
"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"
}
}
Criar item
Exemplo 1 - CreateDataPipeline:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Corpo:
{
"displayName": "pipeline_1",
"type": "DataPipeline"
}
Nota
A documentação afirma que existem apenas 2 propriedades necessárias - displayName e type. Atualmente, o Workload-DI também não suporta a criação sem uma definição . A correção para esse requisito incorreto está sendo implantada no momento. Por enquanto, você pode enviar a mesma definição padrão usada pela interface do usuário do Fabric: ‘{"properties":{"activities":[]}}’
JSON modificado incluindo definição:
{
"displayName": "pipeline_1",
"type": "DataPipeline",
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Resposta 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"description": "",
"workspaceId": "<Your WS Id>"
}
Exemplo 2 – Criar MountedDataFactory
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Corpo:
Payload:
{"DataFactoryResourceId":"/subscriptions/<ADF subscription Id>/resourceGroups/<ADF resource group name>/providers/Microsoft.DataFactory/factories/<ADF datafactory name>"}
JSON codificado:
{
"displayName": "pipeline_mdf",
"type": " MountedDataFactory ",
"definition": {
"parts": [
{
"path": "mountedDataFactory-content.json",
"payload": <base64 encoded value>,
"payloadType": "InlineBase64"
}
]
}
}
Resposta 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "MountedDataFactory",
"displayName": "Pipeline_mdf",
"description": "",
"workspaceId": "<Your WS Id>"
}
Eliminar item
API REST - Itens - Excluir item
Exemplo:
DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Resposta 200: (Sem corpo)
Obter item
Exemplo:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Resposta 200:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"workspaceId": "<your WS Id>"
}
Obter definição de item
API REST - Itens - Obter definição de item
Exemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition
Resposta 200:
{
"definition": {
"parts":[
{
"path": "pipeline-content.json",
"payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==",
"payloadType": "InlineBase64"
}
]
}
}
Itens da lista
API REST - Itens - Listar itens
Exemplo:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Resposta 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"
}
]
}
Atualizar item
API REST - Itens - Atualizar item
Exemplo:
PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Corpo:
{
"displayName": "Pipeline_1_updated",
"description": "This is the description."
}
Resposta 200:
{
"id": "<pipeline id>",
"type": "DataPipeline",
"displayName": "Pipeline_1_updated",
"description": "This is the description.",
"workspaceId": "<Your WS id>"
}
Atualizar definição de item
API REST - Itens - Atualizar definição de item
Exemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition
Corpo:
{
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Resposta 200: (Sem corpo)
Executar trabalho de item sob demanda
API REST - Itens - Executar trabalho de item sob demanda
Exemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Resposta 202: (Sem corpo)
Exemplo com dois valores de parâmetro:
Aqui temos uma atividade Wait com um parâmetro chamado param_waitsec para especificar o número de segundos de espera.
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Corpo:
{
"executionData": {
"parameters": {
"param_waitsec": "10"
}
}
}
Resposta 202: (Sem corpo)
Nota
Não há nenhum corpo devolvido atualmente, mas o ID do trabalho deve ser devolvido. Durante a visualização, ele pode ser encontrado nos cabeçalhos retornados, na propriedade 'Local'.
Obter instância de trabalho de item
API REST - Itens - Obter instância de trabalho de item
Exemplo:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>
Resposta 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"
}
Cancelar instância de trabalho de item
API REST - Itens - Cancelar instância de trabalho de item
Exemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel
Resposta 202: (Sem corpo)
Nota
Depois de cancelar um trabalho, você pode verificar o status chamando Obter instância de trabalho de item ou examinando o histórico de execução de exibição na interface do usuário do Fabric.
A atividade de consulta é executada
Exemplo:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns
Corpo:
{
"filters":[],
"orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
"lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
"lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}
Nota
"job id" é o mesmo id criado e usado nas APIs públicas do Job Scheduler
Resposta 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"
}
]
Limitações conhecidas
- O SPN (Service Principal Auth) não é suportado no momento.