guide utilisateur - Emploi Store Développeurs
Transcription
guide utilisateur - Emploi Store Développeurs
GUIDE UTILISATEUR Version Date V1.5 V1.5 13/07/2016 Page 1 sur 10 13/07/2016 Guide utilisateur HISTORIQUE DES VERSIONS Version 0.1 1.0 1.1 1.2 1.3 1.4 1.5 V1.5 Date 22/06/2015 08/09/2015 13/10/2015 23/11/2015 03/02/2016 01/03/2016 13/07/2016 Objet modification Création du document Mise à jour du document Mise à jour du document Mise à jour du lien vers la documentation CKAN Ajout de la notion de limitation d’affichage des ressources Modification de la procédure de fabrication d’un jeton Evolution des écrans d’ajout d’application Page 2 sur 10 13/07/2016 Guide utilisateur SOMMAIRE 1. PRESENTATION ........................................................................................ 4 1.1. OBJECTIFS DU DOCUMENT ................................................................................ 4 1.2. GENERALITES .............................................................................................. 4 2. OBTENIR UNE ACCREDITATION ................................................................ 5 3. FORGER UN JETON .................................................................................... 7 4. APPELER L’API.......................................................................................... 8 4.1. REQUETE TYPE ............................................................................................. 8 4.2. EXEMPLE DE REQUETES CKAN ........................................................................... 8 4.2.1 Récupérer la liste des jeux de données .................................................... 8 4.2.2 Lire un jeu de données .......................................................................... 8 4.2.3 Lire les informations d’une ressource ....................................................... 9 4.2.4 Lire le contenu d’une ressource .............................................................. 9 4.3. PARTICULARITES POLE EMPLOI ........................................................................... 9 4.3.1 Types de ressource ............................................................................... 9 4.3.2 Versionning .........................................................................................10 V1.5 Page 3 sur 10 13/07/2016 Guide utilisateur 1. Présentation 1.1. Objectifs du document Ce document a pour objectif de décrire la manière de : Obtenir une accréditation Forger un jeton Appeler l’API 1.2. Généralités L’API Pôle emploi s’appuie sur la solution d’API management CKAN dont la documentation est disponible à cette adresse : http://docs.ckan.org/en/ckan2.3/api/ Elle respecte une architecture REST. Les ressources sont distribuées au format JSON. L’API est sécurisée via le protocole OAuth 2.0, client credentials. Tous les appels doivent être passés en HTTPS. V1.5 Page 4 sur 10 13/07/2016 Guide utilisateur 2. Obtenir une accréditation Récupérer une accréditation est primordial pour utiliser l’API car permet de vous authentifier auprès de Pôle emploi. Elle est constituée d’un identifiant client et d’une clé secrète (client ID et secrey key au sens OAuth 2). Une accréditation est délivrée suite à l’ajout d’une application depuis votre tableau de bord seulement si vous avez indiqué souhaiter utiliser au moins une API Pôle emploi. La création d’une application nécessite simplement de renseigner un nom d’application et de sélectionner les API que vous souhaitez utiliser. V1.5 Page 5 sur 10 13/07/2016 Guide utilisateur Une page de confirmation d’action vous indique votre accréditation unique correspondant aux API que vous avez contractualisées. Notez bien ces informations. Vous pourrez les retrouver dans l’onglet Configuration de votre application. V1.5 Page 6 sur 10 13/07/2016 Guide utilisateur 3. Forger un jeton Le jeton ou « access token » doit être passé en en-tête de tous vos appels. Sa durée de vie est fixée à 10 minutes. Au-delà de ce temps, vous devrez en récupérer un nouveau. La requête suivante vous permet de forger un jeton : POST /identite/oauth2/access_token Host: www.emploi-store-dev.fr Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW Cache-Control: no-cache En-tête Valeur Content-Type application/x-www-form-urlencoded Body realm=/developpeur&grant_type=client_credentials&client_id=[identifiantclient]&client_secret=[clé-secrète] Paramètre Valeur realm developpeur grant_type client_credentials client_id Saisir votre identifiant client client_secret Saisir votre clé secrète Vous obtiendrez en retour les informations suivantes : { "scope": "[identifiant-client] digidata", "expires_in": 599, "token_type": "Bearer", "access_token": "[jeton-généré]" } Paramètre Valeur scope Portée du jeton expires_in Durée de vie du jeton token_type Type de jeton access_token Jeton généré Si l’identifiant client ou la clé secrète est incorrecte, vous obtiendrez un code de retour 400 / bad request : { "error": "invalid_client", "error_description": "Client authentication failed" } V1.5 Page 7 sur 10 13/07/2016 Guide utilisateur 4. Appeler l’API 4.1. Requête type Lors de chaque appel à l’API, vous devez passer en en-tête un jeton valide. Si aucun jeton n’est passé, s’il est incorrect ou expiré, vous obtiendrez un code de retour 401 / unauthorized. Votre requête doit être constituée de la façon suivante : GET /api/action/[requête] HTTP/1.1 Host: api.emploi-store.fr Authorization: Bearer [jeton] En-tête Valeur Authorization Bearer [jeton] Paramètre Valeur requête Votre requête (cf. 4.2 - Présentation) 4.2. Exemple de requêtes CKAN 4.2.1 Récupérer la liste des jeux de données La requête suivante vous permettra de récupérer la liste des jeux de données disponibles : GET /api/action/organization_show?id=digidata HTTP/1.1 Host: api.emploi-store.fr Authorization: Bearer [jeton] Paramètre Valeur id digidata 4.2.2 Lire un jeu de données La requête suivante vous permettra de récupérer les informations d’un jeu de données : GET /api/action/package_show?id=[identifiant-dataset] HTTP/1.1 Host: api.emploi-store.fr Authorization: Bearer [jeton] Paramètre Valeur id Identifiant du jeu de données V1.5 Page 8 sur 10 13/07/2016 Guide utilisateur 4.2.3 Lire les informations d’une ressource La requête suivante vous permettra de récupérer les informations d’une ressource d’un jeu de données : GET /api/action/resource_show?id=[identifiant-resource] HTTP/1.1 Host: api.emploi-store.fr Authorization: Bearer [jeton] Paramètre Valeur id Identifiant de la ressource 4.2.4 Lire le contenu d’une ressource La requête suivante vous permettra de lire le contenu d’une ressource : GET /api/action/datastore_search?resource_id=[identifiant-resource] HTTP/1.1 Host: api.emploi-store.fr Authorization: Bearer [jeton] Paramètre Valeur id Identifiant de la ressource Si la ressource est trop lourde pour être affichée intégralement, une erreur 500 s’affichera. Afin de consulter les données, il sera alors nécessaire de limiter l’affichage grâce aux paramètres LIMIT et OFFSET. GET /api/action/datastore_search?resource_id=[identifiant-resource] &limit=XX&offset=XX HTTP/1.1 Exemple : la requête suivante permet de retourner une liste de 10 éléments à partir du 10ème élément (de 11 à 20). GET /api/action/datastore_search?resource_id=[identifiant-resource] &limit=10&offset=10 HTTP/1.1 NB : Le paramètre « limit » prend par défaut la valeur 100. 4.3. Particularités Pôle emploi 4.3.1 Types de ressource Le champ pe_source contient la codification de la ressource pour Pôle emploi. V1.5 Page 9 sur 10 13/07/2016 Guide utilisateur Le champ pe_type permet de distinguer le type de ressource. L’API gère 3 types de ressources : api fichier principal des données documentation documentation associée au jeu de données referentiel contient une partie de la nomenclature Pôle emploi resources": [ { "cache_last_updated": null, "package_id": "445b746a-bbe0-456a-8bee-ea24498242d3", "webstore_last_updated": null, "datastore_active": true, "id": "3424cdfd-45e5-414d-b19f-477a24c443a8", "size": null, "state": "active", "pe_source": "AGENCE_LISTE", "pe_type": "api", "hash": "", "description": "Liste des agences pôles emploi ouvertes au public", "format": "CSV", "tracking_summary": { "total": 0, "recent": 0 } 4.3.2 Versionning Les ressources d’un jeu de données sont versionnées. Le champ pe_version contient le numéro de version de la ressource pour Pôle emploi. … "webstore_url": null, "mimetype_inner": null, "pe_version": "1", "position": 0, "revision_id": "5eb5108f-834b-4047-ab78-7cb9fc46d81b", … Sur un dataset, le champ archivable permet de définir si certaines ressources du jeu de données sont archivables ou non. Actuellement, c’est le cas uniquement pour le jeu de données « Statistiques sur le marché du travail ». ... "update_frequency": "monthly", "id": "47dbbaba-c983-47df-bd9c-eaeec14bd834", "metadata_created": "2015-06-19T15:31:52.272501", "archivable": "true", "metadata_modified": "2015-06-24T15:42:23.051099", "author": "Pôle Emploi", "author_email": "", … Le champ pe_status prend 2 valeurs : current (dernière version) ou archive (ancienne version). V1.5 Page 10 sur 10 13/07/2016