Point de terminaison des requêtes
Exemples d’appels API
Les sections suivantes passent en revue les appels que vous pouvez effectuer à l’aide de la variable /queries
du point de terminaison Query Service API. Chaque appel inclut le format général d’API, un exemple de requête présentant les en-têtes requis et un exemple de réponse.
Récupération d’une liste de requêtes
Vous pouvez récupérer une liste de toutes les requêtes de votre organisation en adressant une requête GET à la fonction /queries
point de terminaison .
Format d’API
GET /queries
GET /queries?{QUERY_PARAMETERS}
{QUERY_PARAMETERS}
: (facultatif) paramètres ajoutés au chemin de requête configurant les résultats renvoyés dans la réponse. Plusieurs paramètres peuvent être inclus et séparés par des esperluettes (&
). Les paramètres disponibles sont répertoriés ci-dessous.
Paramètres de requête
Vous trouverez ci-dessous une liste des paramètres de requête disponibles pour répertorier les requêtes. Tous ces paramètres sont facultatifs. En effectuant un appel vers ce point d’entrée sans paramètres, vous récupérerez toutes les requêtes disponibles pour votre organisation.
orderby
created
et updated
sont pris en charge. Par exemple, orderby=created
triera les résultats par ordre croissant de création. L’ajout d’un -
devant created (orderby=-created
) triera les éléments par ordre décroissant de création.limit
start
Les horodatages ISO permettent différents niveaux de granularité dans la date et l’heure. Les horodatages ISO de base prennent le format suivant :
2020-09-07
le 7 septembre 2020. Un exemple plus complexe serait écrit comme suit : 2022-11-05T08:15:30-05:00
et correspond au 5 novembre 2022, 8:15:30 h, heure normale de l'Est des États-Unis. Un fuseau horaire peut être fourni avec un décalage UTC et est signalé par le suffixe "Z" (2020-01-01T01:01:01Z
). Si aucun fuseau horaire n’est fourni, la valeur par défaut est zéro.property
created
, updated
, state
et id
sont pris en charge. Les opérateurs >
(supérieur à), <
(inférieur à), >=
(supérieur ou égal à), <=
(inférieur ou égal à), ==
(égal à), !=
(différent de) et ~
(contient). Par exemple, id==6ebd9c2d-494d-425a-aa91-24033f3abeec
renvoie toutes les requêtes avec l’identifiant spécifié.excludeSoftDeleted
excludeSoftDeleted=false
inclut des requêtes supprimées de manière réversible. (booléenne, valeur par défaut : true)excludeHidden
isPrevLink
isPrevLink
Le paramètre de requête est utilisé pour la pagination. Les résultats de l’appel API sont triés à l’aide de leur created
l’horodatage et la variable orderby
. Lors de la navigation dans les pages de résultats, isPrevLink
est défini sur true lorsque vous effectuez une pagination à l’envers. L’ordre de la requête est alors inversé. Voir les liens "suivant" et "prev" comme exemples.Requête
La requête suivante récupère la dernière requête créée pour votre organisation.
curl -X GET https://platform.adobe.io/data/foundation/query/queries?limit=1 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Réponse
Une réponse réussie renvoie un état HTTP 200 avec une liste de requêtes pour l’organisation spécifiée sous la forme JSON. La réponse suivante renvoie la dernière requête créée pour votre organisation.
{
"queries": [
{
"isInsertInto": false,
"request": {
"dbName": "prod:all",
"sql": "SELECT *\nFROM\n accounts\nLIMIT 10\n"
},
"state": "SUCCESS",
"rowCount": 0,
"errors": [],
"isCTAS": false,
"version": 1,
"id": "9957bd7f-2244-4fd5-91bc-077d7df1d8e5",
"elapsedTime": 28,
"updated": "2019-12-06T22:00:17.390Z",
"client": "Adobe Query Service UI",
"userId": "{USER_ID}",
"created": "2019-12-06T22:00:17.362Z",
"_links": {
"self": {
"href": "https://platform.adobe.io/data/foundation/query/queries/9957bd7f-2244-4fd5-91bc-077d7df1d8e5",
"method": "GET"
},
"soft_delete": {
"href": "https://platform.adobe.io/data/foundation/query/queries/9957bd7f-2244-4fd5-91bc-077d7df1d8e5",
"method": "PATCH",
"body": "{ \"op\": \"soft_delete\"}"
},
"referenced_datasets": [
{
"id": "5b2bdd32230d4401de87397c",
"href": "https://platform.adobe.io/data/foundation/catalog/dataSets/5b2bdd32230d4401de87397c"
}
]
}
}
],
"_page": {
"orderby": "-created",
"start": "2019-12-06T22:00:17.362Z",
"next": "2019-08-01T00:14:21.748Z",
"count": 1
},
"_links": {
"next": {
"href": "https://platform.adobe.io/data/foundation/query/queries?orderby=-created&start=2019-08-01T00:14:21.748Z"
},
"prev": {
"href": "https://platform.adobe.io/data/foundation/query/queries?orderby=-created&start=2019-12-06T22:00:17.362Z&isPrevLink=true"
}
},
"version": 1
}
Création d’une requête
Vous pouvez créer une requête en effectuant une requête POST vers le point d’entrée /queries
.
Format d’API
POST /queries
Requête
La requête suivante crée une requête, avec une instruction SQL fournie dans le payload :
curl -X POST https://platform.adobe.io/data/foundation/query/queries \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"dbName": "prod:all",
"sql": "SELECT account_balance FROM user_data WHERE user_id='$user_id';",
"queryParameters": {
user_id : {USER_ID}
}
"name": "Sample Query",
"description": "Sample Description"
}
L’exemple de requête ci-dessous crée une requête à l’aide d’un identifiant de modèle de requête existant.
curl -X POST https://platform.adobe.io/data/foundation/query/queries \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"dbName": "prod:all",
"templateID": "f7cb5155-29da-4b95-8131-8c5deadfbe7f",
"name": "Sample Query",
"description": "Sample Description"
}
dbName
sql
name
description
queryParameters
templateId
insertIntoParameters
ctasParameters
Réponse
Une réponse réussie renvoie un état HTTP 202 (Accepted) avec les détails de la requête que vous venez de créer. Une fois que la requête est activée et s’exécute correctement, le state
passe de SUBMITTED
à SUCCESS
.
{
"isInsertInto": false,
"request": {
"dbName": "prod:all",
"sql": "SELECT * FROM accounts;",
"name": "Sample Query",
"description": "Sample Description"
},
"state": "SUBMITTED",
"rowCount": 0,
"errors": [],
"isCTAS": false,
"version": 1,
"id": "4d64cd49-cf8f-463a-a182-54bccb9954fc",
"elapsedTime": 0,
"updated": "2020-01-08T21:47:46.865Z",
"client": "API",
"userId": "{USER_ID}",
"created": "2020-01-08T21:47:46.865Z",
"_links": {
"self": {
"href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
"method": "GET"
},
"soft_delete": {
"href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
"method": "PATCH",
"body": "{ \"op\": \"soft_delete\"}"
},
"cancel": {
"href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
"method": "PATCH",
"body": "{ \"op\": \"cancel\"}"
}
}
}
_links.cancel
to annuler la requête créée ;.Récupération d’une requête par identifiant
Vous pouvez obtenir des informations détaillées sur une requête spécifique en effectuant une requête GET vers le point d’entrée /queries
et en indiquant la valeur id
de la requête dans le chemin d’accès à la requête.
Format d’API
GET /queries/{QUERY_ID}
{QUERY_ID}
id
de la requête que vous souhaitez récupérer.Requête
curl -X GET https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Réponse
Une réponse réussie renvoie un état HTTP 200 avec des informations détaillées sur la requête spécifiée.
{
"isInsertInto": false,
"request": {
"dbName": "prod:all",
"sql": "SELECT * FROM accounts;",
"name": "Sample Query",
"description": "Sample Description"
},
"state": "SUBMITTED",
"rowCount": 0,
"errors": [],
"isCTAS": false,
"version": 1,
"id": "4d64cd49-cf8f-463a-a182-54bccb9954fc",
"elapsedTime": 0,
"updated": "2020-01-08T21:47:46.865Z",
"client": "API",
"userId": "{USER_ID}",
"created": "2020-01-08T21:47:46.865Z",
"_links": {
"self": {
"href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
"method": "GET"
},
"soft_delete": {
"href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
"method": "PATCH",
"body": "{ \"op\": \"soft_delete\"}"
},
"cancel": {
"href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
"method": "PATCH",
"body": "{ \"op\": \"cancel\"}"
}
}
}
_links.cancel
to annuler la requête créée ;.Annulation ou suppression différée d’une requête
Vous pouvez demander l’annulation ou la suppression différée d’une requête spécifiée en adressant une requête de PATCH à la fonction /queries
point de terminaison et spécification de la requête id
dans le chemin d’accès de la requête.
Format d’API
PATCH /queries/{QUERY_ID}
{QUERY_ID}
id
de la requête sur laquelle vous souhaitez effectuer l’opération.Requête
Cette requête API utilise la syntaxe du correctif JSON pour son payload. Pour plus d’informations sur le fonctionnement du correctif JSON, consultez le document principes de base des API.
curl -X PATCH https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json',
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"op": "cancel"
}'
op
cancel
et soft_delete
. Pour annuler la requête, vous devez définir le paramètre op avec la valeur cancel
. Notez que l’opération de suppression progressive empêche le renvoi de la requête lors de requêtes de GET, mais ne la supprime pas du système.Réponse
Une réponse réussie renvoie un état HTTP 202 (Accepted) avec le message suivant :
{
"message": "Query cancel request received",
"statusCode": 202
}