Liste d'objets


Maintenant que vous disposez d’un jeton d’accès nous allons voir comment récupérer une liste d’objet. Par exemple la liste des ressources humaines « employees ».


Requête


https://{account_subdomain}.nicoka.com/api/{resource_name_in_plural}




Paramètres d'entêteDescription
Authorization"Bearer" suivi de votre jeton d’accès

Exemple:


curl https://{account_subdomain}.nicoka.com/api/employees/


-H "Authorization: Bearer


eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNTQ4MTAyNTExfQ.a96H A5xozI_6TE65ybC5RsXdOfSuHd4Wbmhswb-V1nw"


Si vous testez l’API à partir d’un compte “Essai Gratuit” :


Exemple:


curl https://trial.nicoka.com/api/{account_domain}/employees


-H "Authorization: Bearer


eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNTQ4MTAyNTExfQ.a96H A5xozI_6TE65ybC5RsXdOfSuHd4Wbmhswb-V1nw"



Réponse



  1. {

    • "queryUid": "9edbf7bcddfbd0f0db649b6da8680d61",

    • "offset": 0,

    • "limit": 100,

    • "total": 250,

    • "data": [...],



  2. }


Analyse de la réponse :












ParamètresTypeDescription
queryUidstringIl s’agit de l’identifiant unique de la requête
offsetintegerPosition de départ de la requête
limitintegerNombre d’enregistrement dans récupérer dans la requête. Vous ne pouvez pas dépasser 200 par requêtes
pageintegerPage actuelle
pagesintegerNombre total de pages de résultat
totalintegerNombre total d’enregistrement de la requête
@odata.nextLinkJSON stringListe des objets récupérés

Pagination


Lorsque que le résultat de la requête (total) est supérieur à la taille de votre buffer (limit), vous pouvez récupérer les pages suivantes en utilisant les paramètres suivants :







ParamètresDescription
queryUidIdentifiant unique de la requête que vous souhaitez traiter
queryPagePage que vous souhaitez récupérer

Exemple de réponse :




  1. {

    • "queryUid": "9edbf7bcddfbd0f0db649b6da8680d61",

    • "offset": 10,

    • "limit": 10,

    • "page": 2,

    • "pages": 3,

    • "total": 250,

    • "data": [...],

  2. }


Taille de buffer


Vous pouvez définir la taille du « buffer » en ajoutant le paramètre « limit » dans votre requête :


curl https://trial.nicoka.com/api/{account_domain}/employees/?limit=100


-H "Authorization: Bearer


eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNTQ4MTAyNTExfQ.a96H A5xozI_6TE65ybC5RsXdOfSuHd4Wbmhswb-V1nw"



Trie


Vous pouvez trier les résultats de requête en ajoutant le paramètre suivant :


orderBy={name_of_the_field}:{sort_direction}


  • Name of the field: Il s’agit du nom d’un champ existant dans l’objet que vous souhaitez. Vous pouvez aussi effectuer un trie sur des objets liés ou sous l’objet de l’objet principale dans ce cas vous devez utiliser la structure suivante :

{object_entityid}__{name_of_the_field}


Si vous devez effectuer un trie sur plusieurs colonnes à la fois, il vous suffit de séparer les champs avec une virgule dans le requête :


orderBy={name_of_the_field1}:{sort_direction_of_field1},{name_of_the_field2}:{sort_direction_of_field2}


  • Sort direction: ASC pour croissant et DESC pour décroissant. Par défaut les tries sont toujours croissant, il n’est donc pas nécessaire de le spécifier dans la requête :

orderBy={name_of_the_field}


Voici un exemple de requête avec un trie décroissant sur la date de dernière mise à jour :


curl https://trial.nicoka.com/api/{account_domain}/employees/?orderBy=udate:DESC


-H "Authorization: Bearer


eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNTQ4MTAyNTExfQ.a96H A5xozI_6TE65ybC5RsXdOfSuHd4Wbmhswb-V1nw"


Sélection restreinte à certains champs


Par défaut lorsque que vous faites un appel à l’API, le système vous retourne l’ensemble des champs auxquels vous avez accès, si vous souhaitez faire une sélection restreinte il suffit de passer vos champs dans le paramètre « $select »:


Voici un exemple de requête avec un trie décroissant sur la date de dernière mise à jour :


curl https://trial.nicoka.com/api/{account_domain}/employees/?$select=first_name,last_name,email


-H "Authorization: Bearer


eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNTQ4MTAyNTExfQ.a96H A5xozI_6TE65ybC5RsXdOfSuHd4Wbmhswb-V1nw"


Vous pouvez aussi passer l’identifiant unique des champs __.


Format de sortie


L’API de Nicoka vous permet de récupérer vos données sous différents format :


  • xml : il faut ajouter le paramètre __format=xml

  • odata : il faut ajouter le paramètre __format=odata

Filtres


Si vous souhaitez filtrer les résultats d’une recherche il suffit d’ajouter les « champs » sur lesquels vous souhaitez filtrer dans votre requête.


{name_of_the_field}={value}



Champs de type texte

Sur les champs de type “texte” Nicoka fait par défaut une recherche « commence par », si vous souhaitez faire une recherche de type « contient le mot » vous devez ajouter des pourcentages (%) autour de votre mot :


{name_of_the_field}=%{value}%


Si vous souhaitez faire une recherche stricte sur un mot il faut ajouter des apostrophes « ‘ » autour du mot :


{name_of_the_field}='{value}'


Champ de type date

Si vous souhaitez filtrer sur un champ de type il faut passer la date au format « YYYY-MMDD » (ex 2018-12-31), si vous souhaitez ajouter une heure le format devient « YYYY-MMDD hh:mm:ss » (ex 2018-01-31 22:45:00). Le système est capable de reconnaitre d’autre type de format mais il est préférable d’utiliser celui-ci.


{name_of_the_date_field}={start_date}


Par défaut lorsque vous passez une date Nicoka va effectuer un filtre « supérieur ou égale à cette date », si vous souhaitez filtrer sur une journée ou une période vous devez ajouter la date de fin à votre paramètre séparer par une virgule :


{name_of_the_date_field}={start_date},{end_date}



{name_of_the_date_field}=,{end_date}


Champ type liste déroulante

Pour les recherches sur les champs de type liste déroulante vous pouvez passer l’id système du champ ou bien son libellé.


status=1 ou status=actif


Champ type Montant ou Quantité

Pour les recherches sur les champs de type montant ou quantité le paramètre doit être un chiffre sans séparateur de millier et avec un point comme séparateur de décimales si besoin. Si vous souhaitez faire un filtre en utilisant des opérateurs comme « plus grand que » ou « plus petit que », il suffit d’ajouter l’opérateur juste avant le chiffre :


salary=>1 ou salary=<1000.10


Certaines entités autorisent une recherche par mots clés, dans ce cas vous devez utiliser le paramètre « term » :


&term={keywords}


La recherche fonctionne comme dans l’application, à savoir :



  • Si vous séparer vos mots clés par des espaces, le système fera une recherche « inclusive » et ne retournera que les enregistrements qui contiennent tous vos mots clés. En terme de performance il vaut mieux commencer par les mots les plus discriminants (ex : projet chef sera plus rapide que chef de projet)

  • Si vous séparer vos mots par des virgules, le système fera une recherche de type « ou »

  • Si vous ajoutez des apostrophes autour de vos mots clés il fera une recherche stricte sinon par défaut il fait une recherche approximative

 Sommaire