API de Phrase TMS

Technologie API (TMS)

Le contenu est traduit de l’anglais par Phrase Language AI.

Notre API considère les entités d'application (projets, travaux, paramètres) comme des ressources qui peuvent être récupérées, créées, modifiées et supprimées. 

Chaque méthode HTTP représente une action :

  • GET

    Récupère une ressource, sans jamais modifier la ressource

  • POST

    Crée une ressource. POST est également utilisé pour les opérations qui ne correspondent à aucune des quatre opérations ou qui ont une entrée longue ou complexe, comme la recherche dans des mémoires de traduction ou la création de travaux.

  • PUT

    Met à jour la ressource. Veuillez noter que l'entité entière est requise avec tous ses champs, pas seulement ceux modifiés ; ne pas l'inclure signifie qu'elle doit être définie sur null.

  • DELETE

    Supprime la ressource.

Important

Les données de sortie et d'entrée sont généralement au format JSON, encodées en UTF-8. Pour un fichier en tant que type de contenu du corps de la requête, application/octet-stream ou multipart/form-data est utilisé.

Les entités utilisent une structure plate lorsque cela est possible pour maintenir de bons temps de réponse. Au lieu d'inclure des objets enfant entiers dans les réponses, des références contenant l'Identifiant, l'UID et quelques autres attributs sont incluses. Des objets IDReference ou UidReference sont attendus pour faire référence aux entités associées.

Toutes les listes de réponse sont paginées. Utiliser les paramètres pageNumber et pageSize pour récupérer les données demandées. La taille maximale de page est de 50.

Documentation

OpenAPI 3.0 est utilisé pour la documentation de l'API. Les générateurs de code Swagger sont recommandés pour le développement de client.

Exemples d'API

Obtenir la liste de toutes les mémoires de traduction

GET

/web/api2/v1/transMemories

Réponse

200

{
    "pageNumber": 0,
    "content": [
        {
            "internalId": 1,
            "createdBy": {
                "userName": "admin",
                "id": "3",
                "firstName": "Jan",
                "lastName": "Janocko",
                "role": "ADMIN",
                "email": "jan.janocko@phrase.com"
            },
            "client": null,
            "note": "pas nécessaire d'utiliser dans la MT",
            "dateCreated": "2018-01-09T14:07:46+0000",
            "id": "1",
            "targetLangs": [
                "es",
                "it"
            ],
            "subDomain": null,
            "businessUnit": {
                "id": "1",
                "name": "First BU"
            },
            "sourceLang": "en",
            "domaine": null,
            "name": "My new MT"
        }
    ],
    "numberOfElements": 1,
    "totalElements": 1,
    "pageSize": 50,
    "totalPages": 1
}

Créer une nouvelle mémoire de traduction

POST

/web/api2/v1/transMemories

{{
"name": "My new MT",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "pas nécessaire d'utiliser dans la MT"
}

Réponse

201

{
    "internalId": 1,
    "createdBy": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "role": "ADMIN",
        "email": "jan.j@phrase.com"
    },
    "client": null,
    "note": "pas nécessaire d'utiliser dans la MT",
    "dateCreated": "2018-01-09T14:07:46+0000",
    "id": "1",
    "targetLangs": [
        "es",
        "it"
    ],
    "subDomain": null,
    "businessUnit": {
        "id": "1",
        "name": "First BU"
    },
    "sourceLang": "en",
    "domaine": null,
    "name": "My new MT"
}

Ajouter des fichiers lors de la création d'une tâche

Ajouter ce fichier au corps de la requête en tant que pièce jointe binaire. Assurez-vous que Phrase et les en-têtes Content-Disposition sont correctement insérés.

Exemple PHP depuis Postman :

<?php

$request = new HttpRequest();
$request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20of%20your%20project%7D/jobs');
$request->setMethod(HTTP_METH_POST);

$request->setQueryData(array(
'jeton' => 'Votre jeton va ici'
));

$request->setHeaders(array(
'postman-token' => 'ABC',
'cache-control' => 'no-cache',
'content-disposition' => 'filename*=UTF-8''Sample.txt',
'memsource' => '{\\\\\"targetLangs\\\\\":[\\\\\"de\\\\\",\\\\\"fr\\\\\",\\\\\"es\\\\\"],\\\\\"callbackUrl\\\\\":\\\\\"https://my-shiny-service.com/consumeCallback\\\\\",\\\\\"importSettings\\\\\":{\\\\\"uid\\\\\":\\\\\"WF0T1SfSHxII09yKr0dZh9\\\\\"}}'
));

try {
$response = $request->send();

echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}

Gestion des erreurs

En cas de problème lors du traitement d'une requête API, la structure JSON suivante sera renvoyée. Le code d'erreur sera toujours présent ; la description détaillée peut être nulle.

{ "errorCode": "InvalidArguments",
"errorDescription": "L'argument requis \"password\" de type \"chaîne\" est manquant."
}

Une réponse d'erreur peut être détectée en lisant le code de statut de la réponse HTTP. Si une erreur se produit, il ne sera jamais défini sur 2xx. Le statut est 400 bad request, 401 ou 403 pour des problèmes d'authentification ou d'autorisation.

Signalement de problèmes

Lors du signalement d'un problème au support technique, incluez les éléments suivants dans le rapport :

  • Point de terminaison API

  • Demande

  • Heure (et fuseau horaire)

  • Réponse

  • Phrase-Action-Identifiant de la réponse

Cet article vous a-t-il été utile ?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.