Openbare REST API voor Microsoft Fabric-gegevenspijplijn (preview)
Belangrijk
De Microsoft Fabric-API voor Data Factory is momenteel beschikbaar als openbare preview. Deze informatie heeft betrekking op een prereleaseproduct dat aanzienlijk kan worden gewijzigd voordat het wordt vrijgegeven. Microsoft geeft geen garanties, uitgedrukt of impliciet, met betrekking tot de informatie die hier wordt verstrekt.
In Microsoft Fabric bestaan Data Factory-API's alleen uit CRUD-bewerkingen voor pijplijnen en gegevensstromen. Op dit moment worden alleen gegevenspijplijnen ondersteund. Api's voor gegevensstromen worden later uitgebracht. Andere algemene gebieden voor gegevensintegratieprojecten bevinden zich in afzonderlijke API's: planningen, bewaking, verbindingen, hebben hun eigen API's in Fabric. De primaire online referentiedocumentatie voor Microsoft Fabric REST API's vindt u in Microsoft Fabric REST API-verwijzingen. Raadpleeg ook de API voor kernitems en jobplanner.
Openbare API's koppelen
De openbare API's koppelen zijn nu beschikbaar. Met deze API's kunt u naadloos verschillende openbare gegevensbronnen in uw gegevenspijplijnen integreren en openen.
Een autorisatietoken verkrijgen
Optie 1: MSAL.Net gebruiken
Snelstartgids voor Fabric-API's - REST API's voor Microsoft Fabric
Gebruik MSAL.Net om een Microsoft Entra ID-token voor fabric-service te verkrijgen met de volgende bereiken: Workspace.ReadWrite.All, Item.ReadWrite.All. Zie Tokenovername - Microsoft Authentication Library voor .NET voor meer informatie over het verkrijgen van tokens met MSAL.Net.
Plak de toepassings-id (client) die u eerder hebt gekopieerd en plak deze voor de ClientId-variabele.
Optie 2: De infrastructuurportal gebruiken
Meld u aan bij de Fabric-portal voor de tenant waarop u wilt testen en druk op F12 om de ontwikkelaarsmodus van de browser in te voeren. Voer in de console het volgende uit:
powerBIAccessToken
Kopieer het token en plak het voor de ClientId-variabele.
Itemdefinitie met base64-nettolading gecodeerd
- Gebruik Base64-codering en -decoderen om uw JSON te coderen.
- Zorg ervoor dat het vak Veilige codering van URL's uitvoeren niet is ingeschakeld.
- U kunt de pijplijndefinities ophalen via het tabblad JSON-code> weergeven in de gebruikersinterface van 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"
}
}
Neem het eigenschappenobject en plaats deze tussen accolades - { } - zodat de nettolading van de definitie van het REST-item:
{
"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"
}
}
Item maken
Voorbeeld 1: CreateDataPipeline:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Tekst:
{
"displayName": "pipeline_1",
"type": "DataPipeline"
}
Notitie
De documentatie geeft aan dat er slechts 2 vereiste eigenschappen zijn: displayName en type. Op dit moment biedt Workload-DI ook geen ondersteuning voor het maken van een definitie . De oplossing voor deze onjuiste vereiste wordt momenteel geïmplementeerd. Op dit moment kunt u dezelfde standaarddefinitie verzenden die wordt gebruikt door de gebruikersinterface van Fabric: ‘{"properties":{"activities":[]}}’
JSON gewijzigd, inclusief definitie:
{
"displayName": "pipeline_1",
"type": "DataPipeline",
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Antwoord 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"description": "",
"workspaceId": "<Your WS Id>"
}
Voorbeeld 2: MountedDataFactory maken
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Tekst:
Payload:
{"DataFactoryResourceId":"/subscriptions/<ADF subscription Id>/resourceGroups/<ADF resource group name>/providers/Microsoft.DataFactory/factories/<ADF datafactory name>"}
Gecodeerde JSON:
{
"displayName": "pipeline_mdf",
"type": " MountedDataFactory ",
"definition": {
"parts": [
{
"path": "mountedDataFactory-content.json",
"payload": <base64 encoded value>,
"payloadType": "InlineBase64"
}
]
}
}
Antwoord 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "MountedDataFactory",
"displayName": "Pipeline_mdf",
"description": "",
"workspaceId": "<Your WS Id>"
}
Item verwijderen
REST API - Items - Item verwijderen
Voorbeeld:
DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Antwoord 200: (Geen hoofdtekst)
Item ophalen
REST API - Items - Item ophalen
Voorbeeld:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Antwoord 200:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"workspaceId": "<your WS Id>"
}
Itemdefinitie ophalen
REST API - Items - Itemdefinitie ophalen
Voorbeeld:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition
Antwoord 200:
{
"definition": {
"parts":[
{
"path": "pipeline-content.json",
"payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==",
"payloadType": "InlineBase64"
}
]
}
}
Lijstitems
Voorbeeld:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Antwoord 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"
}
]
}
Item bijwerken
REST API - Items - Item bijwerken
Voorbeeld:
PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Tekst:
{
"displayName": "Pipeline_1_updated",
"description": "This is the description."
}
Antwoord 200:
{
"id": "<pipeline id>",
"type": "DataPipeline",
"displayName": "Pipeline_1_updated",
"description": "This is the description.",
"workspaceId": "<Your WS id>"
}
Itemdefinitie bijwerken
REST API - Items - Definitie van item bijwerken
Voorbeeld:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition
Tekst:
{
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Antwoord 200: (Geen hoofdtekst)
Taak voor item op aanvraag uitvoeren
REST API - Items - Taak voor item op aanvraag uitvoeren
Voorbeeld:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Antwoord 202: (Geen hoofdtekst)
Voorbeeld met twee parameterwaarden:
Hier hebben we een wachtactiviteit met een parameter met de naam param_waitsec om het aantal seconden op te geven dat moet worden gewacht.
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Tekst:
{
"executionData": {
"parameters": {
"param_waitsec": "10"
}
}
}
Antwoord 202: (Geen hoofdtekst)
Notitie
Er is momenteel geen hoofdtekst geretourneerd, maar de taak-id moet worden geretourneerd. Tijdens de preview vindt u deze in de geretourneerde headers, in de eigenschap Locatie.
Itemtaakexemplaren ophalen
REST API - Items - Itemtaakexemplaren ophalen
Voorbeeld:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>
Antwoord 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"
}
Itemtaakexemplaren annuleren
REST API - Items - Itemtaakexemplaren annuleren
Voorbeeld:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel
Antwoord 202: (Geen hoofdtekst)
Notitie
Nadat u een taak hebt geannuleerd, kunt u de status controleren door het taakexemplaren ophalen aan te roepen of de uitvoeringsgeschiedenis weergeven in de gebruikersinterface van Fabric te bekijken.
Uitvoeringen van queryactiviteit
Voorbeeld:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns
Tekst:
{
"filters":[],
"orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
"lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
"lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}
Notitie
'taak-id' is dezelfde id die is gemaakt en wordt gebruikt in de openbare API's van Job Scheduler
Antwoord 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"
}
]
Bekende beperkingen
- Service Principal Auth (SPN) wordt momenteel niet ondersteund.