Validation des enregistrements de données par rapport au stockage maître via l'API REST

EnrichVersion
6.4
EnrichProdName
Talend MDM Platform
Talend Data Fabric
task
Gouvernance de données > Validation de données
EnrichPlatform
Studio Talend
Talend MDM Server

Validation des enregistrements de données par rapport au stockage maître via l'API REST

Une interface REST MDM est disponible pour vous permettre de valider les enregistrements de données par rapport au stockage maître via l'API REST.

Avant d'être sauvegardé dans la base de données maître, un enregistrement de données doit passer par un processus de validation, qui implique la vérification de l'enregistrement de données par rapport au schéma de la base de données, aux contraintes de clés étrangères, aux règles de validation et au processus Before-Saving (s'il en existe un) définis dans l'entité à laquelle l'enregistrement de données appartient.

Cet article s'applique aux versions 6.2.0 et suivantes de la solution MDM de Talend.

Validation des enregistrements de données

Vous pouvez valider un ou plusieurs enregistrements par rapport au stockage maître sans créer de nouvelles données ou modifier les données existantes.

Requête

POST /data/{containerName}/validate

URL de la requête

http://{serverurl}/talendmdm/services/rest/data/{containerName}/validate?container={containerType}

Paramètres de la requête

  • containerName : Il s'agit d'une valeur String qui spécifie le nom du conteneur de données par rapport auquel vous souhaitez valider des enregistrements de données.
  • containerType : Il s'agit d'une valeur String qui représente le type de conteneur de données. La valeur est soit ‘MASTER’ (par défaut), soit ‘STAGING’.
  • returnSource : Il s'agit d'une valeur booléenne qui indique s'il faut inclure les enregistrements envoyés dans la réponse. La valeur par défaut est false.
  • beforeSaving : Il s'agit d'une valeur booléenne qui indique s'il faut contourner le processus beforeSaving associé aux enregistrements lors de la validation. Par défaut, la valeur est true. L'opération de validation des données constitue une action immuable et vous pouvez désactiver la vérification par rapport au processus beforeSaving, qui dans certains cas peut modifier les données.

Corps de la requête

Représentation XML du nouvel enregistrement de données que vous souhaitez utiliser pour remplacer l'enregistrement existant.

Élément(s) de l'identifiant dans le corps de la requête qui détermine(nt) l'enregistrement à mettre à jour.

En-têtes

  • Content-Type : application/xml
  • Authorization : schéma d'authentification basique (Basic)
  • Accept : application/xml ou application/json. L'en-tête Accept dit au serveur de retourner du contenu JSON ou XML. Par défaut, le résultat est retourné au format JSON.

Corps de la réponse

Liste des résultats de validation pour chaque enregistrement (au format XML ou JSON) contenant le statut de validité, un message qui peut être vide ou qui peut contenir la raison pour laquelle l'enregistrement de données est invalide. De manière facultative, il peut également contenir les enregistrements envoyés en tant qu'echo.

Par exemple :

<results>
    <result>
        <isValid>true</isValid>
        <message></message>
        <sourceXml>
            <ProductFamily>
                <Id>1</Id>
                <Name>Literature</Name>
                <ChangeStatus>Approved</ChangeStatus>
            </ProductFamily>
        </sourceXml>
    </result>
    <result>
        <isValid>false</isValid>
        <message>[Error] :-1:-1: cvc-enumeration-valid: Value 'Unknown' is not facet-valid with respect to enumeration '[Pending Rejected Approved]'. It must be a value from the enumeration. [Error] :-1:-1: cvc-type.3.1.3: The value 'Unknown' of element 'ChangeStatus' is not valid.
        </message>
        <sourceXml>
            <ProductFamily>
                <Id>2</Id>
                <Name>Comics</Name>
                <ChangeStatus>Unknown</ChangeStatus>
            </ProductFamily>
        </sourceXml>
    </result>
</results>

Code de la réponse

200 - Si l'opération de validation est exécutée avec succès, ce code de statut est retourné quels que soient les résultats de la validation.

Validation d'un enregistrement de données via l'API REST à l'aide d'un Job

L'exemple suivant montre comment utiliser un Job Talend pour valider un enregistrement de données via l'API REST et ainsi afficher le message de la réponse.

Le Job contient deux composants : le tREST et le tJavaRow :

  • le tREST est utilisé pour envoyer la requête HTTP et obtenir la réponse correspondante.
  • le tJavaRow est utilisé pour afficher la réponse.

Récupérez le fichier du Job tREST.zip dans l'onglet Downloads dans le panneau à gauche de cette page.

Avant de commencer

  • Le serveur MDM est en cours de fonctionnement.
  • Vous avez déjà démarré le Studio Talend.
  • Vous avez déjà importé le projet démo MDM.

Procédure

  1. De la Palette, glissez-déposez les deux composants tREST et tJavaRow dans l'espace de modélisation graphique.
  2. Connectez le tREST au tJavaRow à l'aide d'un lien Row > Main.
  3. Double-cliquez sur le tREST pour ouvrir son onglet Basic settings.
  4. Dans le champ URL, saisissez l'URL pour accéder au service de l'API REST de MDM.
    Dans cet exemple, l'URL est la suivante http://localhost:8180/talendmdm/services/rest/data/Product/validate.
  5. Dans la liste HTTP Method, sélectionnez POST.
  6. Cliquez deux fois sur le bouton [+] pour ajouter deux lignes dans la zone HTTP Headers pour décrire le type de contenu de la requête HTTP et spécifier les informations d'autorisation.
    Dans cet exemple, saisissez les paires name/value suivantes :
    name value

    "Content-Type"

    "application/xml"

    "Authorization"

    "Basic YWRtaW5pc3RyYXRvcjphZG1pbmlzdHJhdG9y"

  7. Dans la zone HTTP Body, saisissez l'enregistrement de données à valider par rapport au stockage maître au format XML.
    Dans cet exemple, l'élément <root> est utilisé pour entourer l'enregistrement de données.
  8. Double-cliquez sur le tJavaRow pour ouvrir son onglet Basic settings.
  9. Dans la zone Code, saisissez votre code personnalisé.
    Par exemple :
    System.out.println("\n##### An invalid record example #####\n");
    System.out.println(restResponse_tREST_1);
  10. Enregistrez et exécutez le Job.
    Comme aucun en-tête Accept n'est spécifié, la réponse retourne le contenu au format JSON. La réponse montre que l'enregistrement de données est invalide et transmet un message expliquant la raison pour laquelle l'enregistrement de données n'a pas passé la validation.