Dela via


Offentligt REST API för Microsoft Fabric-datapipelines (förhandsversion)

Viktigt!

Microsoft Fabric API för Data Factory är för närvarande i offentlig förhandsversion. Den här informationen gäller en förhandsversionsprodukt som kan ändras avsevärt innan den släpps. Microsoft lämnar inga garantier, uttryckta eller underförstådda, med avseende på den information som tillhandahålls här.

I Microsoft Fabric består Data Factory-API:er enbart av CRUD-åtgärder för pipelines och dataflöden. För närvarande stöds endast datapipelines. API:er för dataflöden släpps senare. Andra vanliga områden för dataintegreringsprojekt finns i separata API:er: scheman, övervakning, anslutningar, har egna API:er i Infrastrukturresurser. Den primära onlinereferensdokumentationen för Microsoft Fabric REST API:er finns i MICROSOFT Fabric REST API-referenser. Se även API:et för kärnobjekt och jobbschemaläggaren.

Montera offentliga API:er

De offentliga API:erna för montering är nu tillgängliga. Med dessa API:er kan du sömlöst integrera och komma åt olika offentliga datakällor i dina datapipelines.

Hämta en auktoriseringstoken

Alternativ 1: Använda MSAL.Net

Snabbstart för Infrastruktur-API – Rest-API:er för Microsoft Fabric

Använd MSAL.Net för att hämta en Microsoft Entra ID-token för Fabric-tjänsten med följande omfång: Workspace.ReadWrite.All, Item.ReadWrite.All. Mer information om tokenförvärv med MSAL.Net till finns i Tokenförvärv – Microsoft Authentication Library för .NET.

Klistra in det program-ID (klient)-ID som du kopierade tidigare och klistra in det för ClientId-variabeln.

Alternativ 2: Använda Infrastrukturportalen

Logga in på infrastrukturportalen för den klientorganisation som du vill testa och tryck på F12 för att gå in i webbläsarens utvecklarläge. I konsolen där kör du:

powerBIAccessToken

Kopiera token och klistra in den för Variabeln ClientId.

Objektdefinition med nyttolast base64 kodad

  • Använd Base64-koda och avkoda för att koda din JSON.
  • Kontrollera att rutan Utför säker URL-kodning inte är markerad.
  • Du kan hämta pipelinedefinitionerna via fliken Visa --Visa JSON-kod> i användargränssnittet för Infrastruktur.
{ 
    "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" 
    } 
}

Ta egenskapsobjektet och omge dem i klammerparenteser - { } - så att REST Item-definitionsnyttolasten blir:

{
    "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" 
    } 
} 

Skapa objekt

REST API – Objekt – Skapa objekt

Exempel 1 – CreateDataPipeline:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

Brödtext:

{ 
  "displayName": "pipeline_1", 
  "type": "DataPipeline" 
} 

Kommentar

Dokumentationen anger att det bara finns 2 obligatoriska egenskaper – displayName och typ. För närvarande stöder Workload-DI inte skapande utan en definition också. Korrigeringen för det här felaktiga kravet distribueras för närvarande. För tillfället kan du skicka samma standarddefinition som används av användargränssnittet för Infrastruktur: ‘{"properties":{"activities":[]}}’

Ändrad JSON inklusive definition:

{ 
  "displayName": "pipeline_1", 
  "type": "DataPipeline", 
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
} 

Svar 201:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1", 
    "description": "", 
    "workspaceId": "<Your WS Id>" 
} 

Exempel 2 – Skapa MountedDataFactory

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

Brödtext:

Nyttolast:

{"DataFactoryResourceId":"/subscriptions/<ADF subscription Id>/resourceGroups/<ADF resource group name>/providers/Microsoft.DataFactory/factories/<ADF datafactory name>"} 

Kodad JSON:

{ 
  "displayName": "pipeline_mdf", 
  "type": " MountedDataFactory ", 
  "definition": { 
    "parts": [ 
      { 
        "path": "mountedDataFactory-content.json", 
        "payload": <base64 encoded value>, 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
}  

Svar 201:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "MountedDataFactory", 
    "displayName": "Pipeline_mdf", 
    "description": "", 
    "workspaceId": "<Your WS Id>"
} 

Ta bort objekt

REST API – Objekt – Ta bort objekt

Exempel:

DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Svar 200: (Ingen brödtext)

Hämta objekt

REST API – Objekt – Hämta objekt

Exempel:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Svar 200:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1", 
    "workspaceId": "<your WS Id>" 
} 

Hämta objektdefinition

REST API – Objekt – Hämta objektdefinition

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition

Svar 200:

{ 
    "definition": { 
        "parts":[ 
            { 
                "path": "pipeline-content.json", 
                "payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==", 
                "payloadType": "InlineBase64" 
            } 
        ] 
    } 
} 

Listobjekt

REST API – Objekt – Listobjekt

Exempel:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

Svar 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" 
        } 
    ] 
} 

Uppdatera objekt

REST API – Objekt – Uppdatera objekt

Exempel:

PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Brödtext:

{ 
  "displayName": "Pipeline_1_updated", 
  "description": "This is the description." 
}

Svar 200:

{ 
    "id": "<pipeline id>", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1_updated", 
    "description": "This is the description.", 
    "workspaceId": "<Your WS id>" 
}

Uppdatera objektdefinition

REST API – Objekt – Uppdatera objektdefinition

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition

Brödtext:

{ 
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
}

Svar 200: (Ingen brödtext)

Köra objektjobb på begäran

REST API – Objekt – Köra objektjobb på begäran

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline

Svar 202: (Ingen brödtext)

Exempel med två parametervärden:

Här har vi en Vänta-aktivitet med en parameter med namnet param_waitsec för att ange hur många sekunder som ska vänta.

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline

Brödtext:

{ 
  "executionData": { 
    "parameters": {
      "param_waitsec": "10" 
    } 
  } 
}

Svar 202: (Ingen brödtext)

Kommentar

Ingen brödtext returneras för närvarande, men jobb-ID:t ska returneras. Under förhandsversionen finns den i de returnerade rubrikerna i egenskapen Plats.

Hämta objektjobbinstans

REST API – Objekt – Hämta objektjobbinstans

Exempel:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>

Svar 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" 
} 

Avbryt objektjobbinstans

REST API – Objekt – Avbryt objektjobbinstans

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel

Svar 202: (Ingen brödtext)

Kommentar

När du har avbrutit ett jobb kan du kontrollera statusen antingen genom att anropa Get item job instance eller titta på Visa körningshistorik i användargränssnittet för infrastrukturresurser.

Frågeaktivitetskörningar

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns

Brödtext:

{
  "filters":[],
  "orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
  "lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
  "lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}

Kommentar

"jobb-ID" är samma ID som skapats och används i offentliga API:er för Job Scheduler

Svar 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"
    }
]

Kända begränsningar

  • Tjänstens huvudnamnsautentisering (SPN) stöds för närvarande inte.