Delen via


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

REST API - Items - 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

REST API - Items - 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.