API REST publique pour le pipeline de données Microsoft Fabric (aperçu)
Important
L'API Microsoft Fabric pour Data Factory est actuellement en avant-première publique. Cette information concerne un produit en version préliminaire qui peut être sensiblement modifié avant sa sortie. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.
Dans Data Factory pour Microsoft Fabric, les API consistent uniquement en des opérations CRUD pour les pipelines et les flux de données. Actuellement, seuls les pipelines de données sont pris en charge. Les API de flux de données ne sont pas encore disponibles. D’autres domaines communs aux projets d’intégration de données se trouvent dans des API distinctes : les planifications, la surveillance et les connexions ont leurs propres API dans Fabric. La principale documentation de référence en ligne pour les API REST de Microsoft Fabric se trouve dans Références API REST Microsoft Fabric. Reportez-vous également à l’API des éléments de base et au planificateur de tâches.
Définition d’élément avec charge utile encodée en base64
- Utilisez Encodage et décodage en Base64 pour encoder votre JSON.
- Assurez-vous que la case Effectuer un encodage URL sécurisé n’est pas cochée.
- Vous pouvez obtenir les définitions de pipeline via l’onglet Afficher -->Afficher le code JSON dans l’interface utilisateur 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"
}
}
Entourez les propriétés de l’objet d’accolades – { } – de sorte que la charge utile de la définition de l’élément REST soit la suivante :
{
"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"
}
}
Créer un élément
API REST – Éléments – Créer un élément
Exemple : CreateDataPipeline :
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Corps :
{
"displayName": "pipeline_1",
"type": "DataPipeline"
}
Remarque
La documentation indique qu’il n’y a que deux propriétés requises : displayName et type. Actuellement, Workload-DI ne prend pas en charge la création sans définition. Le correctif pour cette exigence erronée est en cours de déploiement. Pour l’instant, vous pouvez envoyer la même définition par défaut que celle utilisée par l’interface utilisateur Fabric : ‘{"properties":{"activities":[]}}’
JSON modifié incluant la définition :
{
"displayName": "pipeline_1",
"type": "DataPipeline",
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Réponse 201 :
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"description": "",
"workspaceId": "<Your WS Id>"
}
Supprimer l’élément
API REST – Éléments – Supprimer l’élément
Exemple :
DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Réponse 200 : (Aucun corps)
Obtenir un élément
API REST – Éléments – Obtenir un élément
Exemple :
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Réponse 200 :
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"workspaceId": "<your WS Id>"
}
Obtenir la définition d’un élément
API REST – Éléments – Obtenir la définition d’un élément
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition
Réponse 200 :
{
"definition": {
"parts":[
{
"path": "pipeline-content.json",
"payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==",
"payloadType": "InlineBase64"
}
]
}
}
Répertorier les éléments
API REST – Éléments – Éléments de liste
Exemple :
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Réponse 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"
}
]
}
Update item (Mettre à jour un élément)
API REST – Éléments – Mettre à jour l’élément
Exemple :
PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Corps :
{
"displayName": "Pipeline_1_updated",
"description": "This is the description."
}
Réponse 200 :
{
"id": "<pipeline id>",
"type": "DataPipeline",
"displayName": "Pipeline_1_updated",
"description": "This is the description.",
"workspaceId": "<Your WS id>"
}
Mettre à jour la définition d’élément
API REST – Éléments – Mettre à jour la définition d’élément
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition
Corps :
{
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Réponse 200 : (Aucun corps)
Exécuter la tâche d’élément à la demande
API REST – Éléments – Exécuter la tâche d’élément à la demande
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Réponse 202 : (Aucun corps)
Exemple avec deux valeurs de paramètres :
Nous avons ici une activité Wait avec un paramètre nommé param_waitsec pour spécifier le nombre de secondes à attendre.
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Corps :
{
"executionData": {
"parameters": {
"param_waitsec": "10"
}
}
}
Réponse 202 : (Aucun corps)
Remarque
Aucun corps n’est renvoyé pour l’instant, mais l’identifiant de la tâche devrait être renvoyé. Pendant l’aperçu, il peut être trouvé dans les en-têtes renvoyés, dans la propriété Emplacement.
Obtenir l’instance de la tâche d’élément
API REST – Éléments – Obtenir l’instance de la tâche d’élément
Exemple :
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>
Réponse 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"
}
Annuler l’instance de tâche d’élément
API REST – Éléments – Annuler l’instance de la tâche d’élément
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel
Réponse 202 : (Aucun corps)
Remarque
Après avoir annulé une tâche, vous pouvez en vérifier l’état soit en appelant Obtenir l’instance demande de travail de l’élément, soit en consultant Afficher l’historique des exécutions dans l’interface utilisateur Fabric.
Interroger les exécutions d'activité
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<Job ID>/queryactivityruns
Corps :
{
"filters":[],
"orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
"lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
"lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}
Remarque
"job id" est le même identifiant créé et utilisé dans les API publiques du calendrier des tâches
Réponse 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"
}
]
Limitations connues
- L’authentification du principal de service (SPN) n’est actuellement pas prise en charge.