Consommer l’api REST Datachain
Obtenir la liste des expositions disponibles pour l’utilisateur connecté
Datachain Marketplace met à disposition une api rest, permettant d’obtenir les métadonnées des expositions (informations identiques à celles présentées dans l’interface MarketPlace).
Cette api est accessible sous l’url :
https://VOTRE_URL_MARKETPLACE/dmp-api/expositions
et retourne, sous forme de tableau json, les informations suivantes sur les expositions.
[
{
"id": 1001,
"label": "My exposition projet",
"rootCode": "MyProjectRootCode",
"expositions": [
{
"title": "Exposition API - Datablock_exposition",
"details": "Detail",
"keywords": [
"Mot Clé"
],
"id": 1002,
"updateDate": 1760437413237,
"accessPoint": "exposition1",
"dcRestUrl": "http://VOTRE_URL_MARKETPLACE/dmp-api/data/MyProjectRootCode/exposition",
"odataUrl": "http://VOTRE_URL_MARKETPLACE/dmp-api/odata/MyProjectRootCode/exposition?$format=json",
"columns": [
{
"alias": "bool",
"idColumn": false,
"list": false,
"filter": true,
"type": "BOOLEAN"
},
{
"alias": "list_string",
"idColumn": false,
"list": true,
"filter": true,
"type": "STRING"
},
// Others Colonnes
]
},
// Others Expositions
]
},
// Others Projects
]
| Clé | Description |
|---|---|
rootCode |
Code de regroupement des expositions (racine de projet) |
id |
Identifiant unique (inutile) |
expositions |
Tableau d’expositions associées à la racine |
expositions[].accessPoint |
Nom de l’exposition, utilisées dans l’URL |
expositions[].id |
Identifiant unique (inutile) |
expositions[].dcRestUrl |
Url de l’api REST |
expositions[].odataUrl |
Url de l’api Odata |
expositions[].title |
Nom de l’exposition dans les métadonnées |
expositions[].details |
Description de l’exposition dans les métadonnées |
expositions[].keywords |
Mots clés associés dans les métadonnées |
expositions[].columns |
Tableau de colonnes |
expositions[].columns[].alias |
Alias de la colonne |
expositions[].columns[].description |
Description de la colonne |
expositions[].columns[].list |
Indique si la colonne est de type list |
expositions[].columns[].type |
Type Datachain (parmi : STRING, INTEGER, BIG_INTEGER, DECIMAL, BOOLEAN, LONG, DATE) |
expositions[].columns[].filter |
Booléen indiquant si des filtres peuvent être effectués |
Obtenir les données d’une exposition
Cette api permet d’obtenir les données d’une exposition sous forme de liste d’enregistrements, avec pagination.
https://VOTRE_URL_MARKETPLACE/dmp-api/data/racine/exposition?select=id,nom&filter=nom=beginsWith=A
Syntaxes et opérateurs de requêtes
Vous devez respecter la syntaxe d’api REST DataChain pour construire des requêtes et interroger les API.
| Syntaxe | Description | Obligatoire ? |
|---|---|---|
http://VOTRE_URL_MARKETPLACE/dmp-api/data/<racine>/<exposition>?hitsPerPage=100&page=1 |
URL d’accès de base |
|
exposition? |
Nom du point d’accès attribué lors du paramétrage de l’API |
|
select= |
Sélectionne les colonnes à renvoyer dans la réponse. |
|
filter= |
Filtres en fonction des paramètres de filtres définis |
|
page= |
Indique la page retournée. Par défaut, il s’agit de la page 1 |
|
hitsPerPage= |
Indique le nombre de lignes par page |
|
sort= |
Tri en fonction des paramètres définis |
|
format= |
Indique le format de sortie des données (xml/json) |
|
rootTag= |
Précise le libellé de la balise racine des données xml retournées par la requête |
|
rowTag= |
Précise le libellé de la balise de chaque enregistrement retourné par la requête |
|
& |
Caractère à ajouter entre chaque élément de syntaxe de la requête |
| Opérateur | Syntaxe | Types acceptés | Exemple |
|---|---|---|---|
Et |
and |
Autres opérateurs |
(nom=='DURAND') and (_prenom=='Pierre') |
Ou |
or |
Autres opérateurs |
(nom=='DURAND') or (nom=='DUPONT') |
Égal |
== |
String, Numérique, Booléen, Date |
nom=='mon ami' ou nom==ami |
Différent |
!= |
String, Numérique, Booléen, Date |
nom!='mon ami' ou nom!=ami |
Supérieur |
> ou =gt= |
Numérique, Date |
> 10 ou =gt=10 |
Supérieur ou égal |
>= ou =ge= |
Numérique, Date |
>= 10 ou =ge=10 |
Inférieur |
< ou =lt= |
Numérique, Date |
< 10 ou =lt=10 |
Inférieur ou égal |
≤ ou =le= |
Numérique, Date |
≤ 10 ou =le=10 |
Dans la liste |
=in= |
String, Numérique, Booléen, Date |
=in=(ami,copain) |
Pas dans la liste |
=out= ou =notIn= |
String, Numérique, Booléen, Date |
=out=(ami,copain) ou =notIn=('mon ami','mon copain') |
Compris entre |
=between= |
Numérique, Date |
=between=(2,5) ou =between=('','') |
N’est pas compris entre |
=notBetween= |
Numérique, Date |
=notBetween=(2,5) ou =notBetween=('','') |
Contient |
=contains= |
string |
=contains=('grenoble') |
Ne contient pas |
=notContains= |
string |
=notContains=(grenoble') |
Commence par |
=beginsWith= |
string |
=beginsWith=A ou =beginsWith='A B' |
Ne commence par |
=notBeginsWith= |
string |
=NotBeginsWith=A ou =NotBeginsWith='A B' |
Se termine par |
=endsWith= |
string |
=endsWith=A ou =endsWith='A B' |
Ne se termine pas par |
=notEndsWith= |
string |
=notEndsWith=A ou =notEndsWith='A B' |
Est null / N’est pas Null |
=isNull= |
String, Numérique, Booléen, Date |
Nom=isNull=true ou Nom=isNull=false |
Format d’affichage des données
Comme évoqué ci-dessus, la réponse aux requêtes soumises à l’API d’Exposition peut être exprimée en JSON (format par défaut) ou en XML.
Pour choisir le format d’affichage XML, il suffit d’ajouter le paramètre ?format=xml à l’URL de la requête. Deux paramètres optionnels peuvent accompagner ce choix :
-
&rootTag=[libellé]qui permet de spécifier le libellé de la balise racine du document XML renvoyé. Par défaut, la valeur de ce paramètre correspond au nom du point d’accès de l’Exposition interrogée. -
&rowTag=[libellé]qui définit le nom de la balise de chacun des enregistrements retournés par la requête à l’intérieur de la balise racine. Par défaut, la valeur de ce paramètre est <item>.
Saisie des paramètres optionnels
Pour une requête bien formée et valide, la valeur des paramètres optionnels rootTag et rowTag doit respecter les conditions suivantes :
-
doit commencer par une lettre ou un sous-tiret ('_')
-
ne doit pas contenir d’espaces ou de caractères spéciaux (seuls les lettres, chiffres, '_', - et '.' sont autorisés)
-
ne doit pas commencer par la séquence 'xml' (indépendamment de sa casse)
Exemples de requêtes
https://monInstance/dmp-api/data/codeRacineExposition/TestAccessNew
En l’absence de paramètre, le résultat est retourné au format JSON :
[
{
"date": "2022-01-01T00:00:00Z",
"dec": 0.9
},
{
"date": "2022-02-01T00:00:00Z",
"dec": 8.5
}
]
https://monInstance/dmp-api/data/codeRacineExposition/TestAccessNew?format=XML&rowTag=nouvel_enregistrement
Choix du format XML mais pas de paramètre rootTag, le tag racine prend donc la valeur du point d’accès de l’exposition. Le paramètre rootTag nomme les tags de chacune des lignes retournées par la réponse 'nouvel_enregistrement'.
<TestAccessNew>
<nouvel_enregistrement>
<date>2022-01-01T00:00:00Z</date>
<dec>0.9</dec>
</nouvel_enregistrement>
<nouvel_enregistrement>
<date>2022-02-01T00:00:00Z</date>
<dec>8.5</dec>
</nouvel_enregistrement>
</TestAccessNew>
Pagination
Dans le cas de requêtes paginées, il est nécessaire de savoir si toutes les données ont bien été reçues.
L’api Rest Datachain propose pour ce faire deux solutions :
-
l’Api de comptage : Cette api peut être appelée avant les appels de pagination, puis être utilisée dans une boucle de traitement (en effectuant quelque calculs)
int count=callCountApi();
// Paginate éléments by 1000
int hitsPerPages=1000;
int page=0;
while (hitsPerPages * page < count)
{
page++; // first APi rest Page is 1
callAndStoreDataApi(page, hitsPerPages);
}
-
l’entête dc_has_next : lors d’une requête sur les données, l’api renvoie systématiquement un entête http 'dc_has_next', valorisé à true s’il reste des données, et false sinon. Cet entête peut servir à effectuer une boucle sur sa valeur.
boolean continueIteration=true;
// Paginate éléments by 1000
int hitsPerPages=1000;
int page=0;
while (continueIteration)
{
page++; // first APi rest Page is 1
continueIteration = callAndStoreDataApiAndReturnDcHasNextHeaderValue(page, hitsPerPages);
}
À noter : L’api retourne aussi dans un entête http "dc_count", qui retourne le nombre d’éléments disponibles répondant à la requête (La valeur est donc identique à l’appel de l’API Count.)
Obtenir un élément unique d’une exposition
Lorsqu’une exposition expose des données avec un identifiant unique, (indiqué dans le profil de l’exposition, colonne 'Id' des 'Colonnes disponibles'), il est possible de récupérer un element d’id 'ITEM_ID', en appelant l’URL : https://VOTRE_URL_MARKETPLACE/dmp-api/data/racine/exposition/items/ITEM_ID
Mapping des types Datachain vers les types Json.
| Type Datachain | Type Odata |
|---|---|
Booléen / Boolean |
boolean |
Décimal / Decimal |
Number |
Entier / Integer |
Number |
Grand nombre entier / Big Integer |
Number |
Chaîne de caractère / String |
String |
Date / Date |
Date au format ISO 8601 sous forme de String ( ex: "2025-10-15T07:34:13Z") |
Liste(Type) / List(Type) |
Array[Type] |
Dernière mise à jour le 28 avril 2026 à 11:53