Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Apprendre à utiliser l'API Right Consents pour les opérations de base :

  • Comprendre les concepts et les ressources de base de l'API

  • Créer une transaction de consentement

  • Suivre le flux de travail de la transaction

  • Utiliser curl pour effectuer des appels API de base pour un scénario simple de collecte de consentement

Dans ce guide, vous découvrirez les concepts de base et les ressources de l'API. Nous utiliserons certains modèles d'éléments de consentement existants pour créer une transaction et suivre le déroulement de la transaction en utilisant uniquement des appels à l'APILe backend Right Consents est disponible sous la forme d'une API REST. La documentation complète de l'API est générée par le backend lui-même à l'aide des normes swagger et OpenAPI. Elle est servie par le backend lui-même et est toujours synchronisée avec la version en cours.

L'API de consentement est plus ou moins similaire à un paiement en ligne : un utilisateur privilégié crée la transaction et la transmet au client. Il n'est pas obligatoire d'avoir un client authentifié pour effectuer la transaction.

Table of Contents

Accès à l'interface utilisateur de l'API REST

Si vous avez suivi le guide de démarrage rapide, vous devriez pouvoir accéder à l'interface locale de la documentation de l'API. Si vous avez une instance spécifique de Right Consents, il vous suffit d'adapter l'URL avec le nom de domaine ou l'adresse IP de votre instance.

Info

Le fichier swagger correspondant est disponible à l'adresse https://<consent-manager>/swagger-ui.

Authentification

Les consentements de droit définissent cinq rôles d'application : administrateur, opérateur, utilisateur, transaction ou anonyme. Pour obtenir un rôle, les appels à l'API doivent être authentifiés. Right Consents prend en charge 3 schémas d'authentification différents : jeton OIDC, API KEY et jeton intégrétoken.

Dans ce guide, nous allons initier une transaction en tant qu'utilisateur administrateur et laisser le sujet cible suivre le flux de travail de la transaction en utilisant des jetons intégrés. Vous pouvez utiliser un jeton OIDC ou une clé API pour accéder à l'API.

...

Code Block
TOKEN="Bearer "+`curl -v -d "client_id=cmclient" -d "username=demo@demo.com<user>" -d "password=demo42<password>" -d "grant_type=password" httphttps://localhost:4285<serveur d'auth>/auth/realms/RightConsentsFairAndSmart/protocol/openid-connect/token | jq -r '.access_token'`

...

Voici le contexte de consentement le plus simple possible avec une configuration complète par défaut.

Code Block
languagejson
{
  "subject": "testuser@demo.com",
  "layoutData": {
    "type":"layout",
    "elements":["processing.001"],
    "orientation":"VERTICAL",
    "info":"information.001"}
}
Info

Ce contexte utilise des éléments déjà créés dans le guide du premier formulaire de consentement : information.001, traitement.001.

...

Code Block
TX=`curl -v --header "Content-Type: application/json" \
            --header "CM_KEY: ${KEY}" \
            --header "Authorization: ${TOKEN}" \
            --request POST \
            --data '{"subject":"testuser@demo.com","layoutData":{"type":"layout","elements":["processing.001"],"orientation":"VERTICAL","info":"information.001"}}' \
            httphttps://localhost:4287<consent-manager>/consents` && TX_ID=`echo $TX | jq -r .id` && TX_TOKEN=`echo $TX | jq -r .token`

...

Le cycle de vie de la transaction suit 6 états : CRÉÉCREATED, SOUMISSUBMITTED, ENGAGÉCOMMITTED, ANNULÉ, DÉLAI D'ATTENTE, RETOUR EN ARRIÈRECANCELLED, TIMEOUT, ROLLBACK. Après la création, la transaction se trouve dans l'état CREATED.

...

En HTML, vous devez utiliser l'URI de la transaction renvoyée dans l'en-tête "Location" ou construire l'URI de la transaction à partir de la représentation de la ressource renvoyée. Lorsque le mimetype text/html est requis par l'API, un simple appel à la ressource racine de la transaction effectuera la redirection nécessaire vers la prochaine tâche humaine du flux de travail à accomplir.

Code Block
TX_URI=httphttps://localhost:4287<consent-manager>/consents/${TX_ID}?t=${TX_TOKEN}

...

Code Block
TX=`curl -v --header "CM_KEY: ${KEY}" \
            --header "Authorization: ${TOKEN}" \
            --header "Accept: application/json" \
            httphttps://localhost:4287<consent-manager>/consents/${TX_ID}`

Voici une version abrégée de la transaction qui s'est déroulée juste après la création :

Code Block
languagejson
{
   "id":"P6f1JU6LjKoUwR5QBEYPgf",
   "subject":"usertest",
   "state":"CREATED",
   "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJQNmYxSlU2TGpLb1V3UjVRQkVZUGdmIiwiZXhwIjoxNjYwOTMwMzMyfQ.0pGomVcjvGGWshhovRpCKjP6BVOt2K6-W6QXLCVlwsA",
   "task":"http://localhost:4287/consents/P6f1JU6LjKoUwR5QBEYPgf/submit",
   "breed":"http://localhost:4287/consents/P6f1JU6LjKoUwR5QBEYPgf/child"
}

...

Code Block
TX=`curl -v --header "CM_KEY: ${KEY}" \
            --header "Authorization: ${TOKEN}" \
            --header "Accept: application/json" \
            httphttps://localhost:4287<consent-manager>/consents/${TX_ID}` &&
echo ${TX}

...