Publiczny interfejs API REST potoku danych usługi Microsoft Fabric (wersja zapoznawcza)
Ważne
Interfejs API usługi Microsoft Fabric dla usługi Data Factory jest obecnie w publicznej wersji zapoznawczej. Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed jego wydaniem. Firma Microsoft nie udziela żadnych gwarancji, wyrażonych ani domniemanych, w odniesieniu do podanych tutaj informacji.
W usłudze Microsoft Fabric interfejsy API usługi Data Factory składają się wyłącznie z operacji CRUD dla potoków i przepływów danych. Obecnie obsługiwane są tylko potoki danych. Interfejsy API przepływów danych zostaną wydane później. Inne typowe obszary projektów integracji danych znajdują się w oddzielnych interfejsach API: harmonogramy, monitorowanie, połączenia, mają własne interfejsy API w usłudze Fabric. Podstawowa dokumentacja referencyjna online dla interfejsów API REST usługi Microsoft Fabric znajduje się w dokumentacji interfejsu API REST usługi Microsoft Fabric. Zapoznaj się również z podstawowymi elementami interfejsu API i harmonogramem zadań.
Instalowanie publicznych interfejsów API
Interfejsy API publiczne instalowania są teraz dostępne. Te interfejsy API umożliwiają bezproblemową integrację i dostęp do różnych publicznych źródeł danych w potokach danych.
Uzyskiwanie tokenu autoryzacji
Opcja 1. Używanie MSAL.Net
Użyj MSAL.Net, aby uzyskać token identyfikatora entra firmy Microsoft dla usługi Fabric z następującymi zakresami: Workspace.ReadWrite.All, Item.ReadWrite.All. Aby uzyskać więcej informacji na temat pozyskiwania tokenów za pomocą MSAL.Net, zobacz Token Acquisition — Microsoft Authentication Library for .NET (Pozyskiwanie tokenów — biblioteka uwierzytelniania firmy Microsoft dla platformy .NET).
Wklej skopiowany wcześniej identyfikator aplikacji (klienta) i wklej go jako zmienną ClientId.
Opcja 2. Korzystanie z portalu sieci szkieletowej
Zaloguj się do portalu sieci szkieletowej dla dzierżawy, na której chcesz przeprowadzić testowanie, i naciśnij F12, aby wprowadzić tryb dewelopera przeglądarki. W konsoli programu uruchom następujące polecenie:
powerBIAccessToken
Skopiuj token i wklej go dla zmiennej ClientId.
Definicja elementu z ładunkiem zakodowanym w formacie base64
- Kodowanie i dekodowanie kodu w formacie JSON przy użyciu algorytmu Base64.
- Upewnij się, że pole Wykonaj bezpieczne kodowanie adresu URL nie jest zaznaczone.
- Definicje potoków można pobrać za pomocą karty Widok —> Wyświetl kod JSON w interfejsie użytkownika sieci szkieletowej.
{
"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"
}
}
Weź obiekt properties i umieść je w nawiasach klamrowych — { } — więc ładunek definicji elementu REST będzie:
{
"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"
}
}
Utwórz element
Interfejs API REST — elementy — tworzenie elementu
Przykład 1 — CreateDataPipeline:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Treść:
{
"displayName": "pipeline_1",
"type": "DataPipeline"
}
Uwaga
W dokumentacji stwierdza się, że istnieją tylko 2 wymagane właściwości — displayName i typ. Obecnie usługa Workload-DI nie obsługuje tworzenia bez definicji . Poprawka tego błędnego wymagania jest obecnie wdrażana. Na razie możesz wysłać tę samą definicję domyślną używaną przez interfejs użytkownika sieci szkieletowej: ‘{"properties":{"activities":[]}}’
Zmodyfikowany kod JSON, w tym definicja:
{
"displayName": "pipeline_1",
"type": "DataPipeline",
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Odpowiedź 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"description": "",
"workspaceId": "<Your WS Id>"
}
Przykład 2 — tworzenie MountedDataFactory
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Treść:
Ładunek:
{"DataFactoryResourceId":"/subscriptions/<ADF subscription Id>/resourceGroups/<ADF resource group name>/providers/Microsoft.DataFactory/factories/<ADF datafactory name>"}
Zakodowany kod JSON:
{
"displayName": "pipeline_mdf",
"type": " MountedDataFactory ",
"definition": {
"parts": [
{
"path": "mountedDataFactory-content.json",
"payload": <base64 encoded value>,
"payloadType": "InlineBase64"
}
]
}
}
Odpowiedź 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "MountedDataFactory",
"displayName": "Pipeline_mdf",
"description": "",
"workspaceId": "<Your WS Id>"
}
Usuwanie elementu
Interfejs API REST — elementy — usuwanie elementu
Przykład:
DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Odpowiedź 200: (Brak treści)
Pobieranie elementu
Interfejs API REST — Elementy — Pobieranie elementu
Przykład:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Odpowiedź 200:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"workspaceId": "<your WS Id>"
}
Pobieranie definicji elementu
Interfejs API REST — Elementy — pobieranie definicji elementu
Przykład:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition
Odpowiedź 200:
{
"definition": {
"parts":[
{
"path": "pipeline-content.json",
"payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==",
"payloadType": "InlineBase64"
}
]
}
}
Elementy listy
Interfejs API REST — elementy — elementy listy
Przykład:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Odpowiedź 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"
}
]
}
Aktualizuj element
Interfejs API REST — elementy — aktualizowanie elementu
Przykład:
PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Treść:
{
"displayName": "Pipeline_1_updated",
"description": "This is the description."
}
Odpowiedź 200:
{
"id": "<pipeline id>",
"type": "DataPipeline",
"displayName": "Pipeline_1_updated",
"description": "This is the description.",
"workspaceId": "<Your WS id>"
}
Aktualizowanie definicji elementu
Interfejs API REST — Elementy — aktualizowanie definicji elementu
Przykład:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition
Treść:
{
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Odpowiedź 200: (Brak treści)
Uruchamianie zadania elementu na żądanie
Interfejs API REST — elementy — uruchamianie zadania elementu na żądanie
Przykład:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Odpowiedź 202: (Brak treści)
Przykład z dwiema wartościami parametrów:
W tym miejscu mamy działanie Wait z parametrem o nazwie param_waitsec , aby określić liczbę sekund oczekiwania.
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Treść:
{
"executionData": {
"parameters": {
"param_waitsec": "10"
}
}
}
Odpowiedź 202: (Brak treści)
Uwaga
Obecnie nie jest zwracana żadna treść, ale identyfikator zadania powinien zostać zwrócony. W wersji zapoznawczej można ją znaleźć w zwróconych nagłówkach we właściwości "Location".
Pobieranie wystąpienia zadania elementu
Interfejs API REST — elementy — pobieranie wystąpienia zadania elementu
Przykład:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>
Odpowiedź 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"
}
Anulowanie wystąpienia zadania elementu
Interfejs API REST — Elementy — anulowanie wystąpienia zadania elementu
Przykład:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel
Odpowiedź 202: (Brak treści)
Uwaga
Po anulowaniu zadania możesz sprawdzić stan, wywołując polecenie Pobierz wystąpienie zadania elementu lub przeglądając historię uruchamiania widoku w interfejsie użytkownika sieci szkieletowej.
Uruchomienia działań zapytań
Przykład:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns
Treść:
{
"filters":[],
"orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
"lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
"lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}
Uwaga
"Identyfikator zadania" jest tym samym identyfikatorem utworzonym i używanym w publicznych interfejsach API harmonogramu zadań
Odpowiedź 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"
}
]
Znane ograniczenia
- Uwierzytelnianie jednostki usługi (SPN) nie jest obecnie obsługiwane.