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 |
|
& |
Caractère à ajouter entre chaque élement 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 |
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 9 décembre 2025 à 18:26