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.