API de Phrase TMS

API Technology (TMS)

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

Notre API voit les entités d'application (projets, emplois, 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 changer la ressource

  • POST

    Crée une ressource. POST est également utilisé pour des opérations qui ne s'intègrent dans aucune des quatre opérations ou qui ont des entrées longues ou complexes, comme la recherche dans les mémoires de traduction ou la création d'emplois.

  • PUT

    Met à jour la ressource. Veuillez noter que l'ensemble de l'entité est requis avec tous ses champs, pas seulement ceux qui ont changé ; ne pas l'inclure signifie qu'il doit être défini sur null.

  • DELETE

    Supprime la ressource.

Important

Les données d'entrée et de sortie 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 enfants entiers dans les réponses, des références contenant l'ID, l'UID et quelques autres attributs sont incluses. Soit IDReference ou UidReference des objets pour faire référence à des entités liées sont attendus.

Toutes les listes de réponses sont paginées. Utilisez les paramètres pageNumber et pageSize pour récupérer les données demandées. La taille maximale de la 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 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,
            "crééPar": {
                "userName": "admin",
                "id": "3",
                "firstName": "Jan",
                "lastName": "Janocko",
                "rôle": "ADMIN",
                "email": "jan.janocko@phrase.com"
            },
            "client": null,
            "note": "pas nécessaire d'utiliser dans TM"
            "dateCreated": "2018-01-09T14:07:46+0000",
            "id": "1",
            "targetLangs": [
                "es",
                "it"
            ],
            "sous-domaine": null,
            "businessUnit": {
                "id": "1",
                "name": "Première BU"
            },
            "sourceLang": "en",
            "domaine": null,
            "name": "Mon nouveau MT"
        }
    ],
    "numberOfElements": 1,
    "totalElements": 1,
    "pageSize": 50,
    "totalPages": 1
}

Créer une nouvelle mémoire de traduction

POST

/web/api2/v1/transMemories

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

Réponse

201

{
    "internalId": 1,
    "crééPar": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "rôle": "ADMIN",
        "email": "jan.j@phrase.com"
    },
    "client": null,
    "note": "pas nécessaire d'utiliser dans TM"
    "dateCreated": "2018-01-09T14:07:46+0000",
    "id": "1",
    "targetLangs": [
        "es",
        "it"
    ],
    "sous-domaine": null,
    "businessUnit": {
        "id": "1",
        "name": "Première BU"
    },
    "sourceLang": "en",
    "domaine": null,
    "name": "Mon nouveau MT"
}

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

Ajoutez 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 de PHP depuis Postman :

<?php

$request = new HttpRequest();
$request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20de%20votre%20projet%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

S'il y a un problème lors du traitement d'une demande d'API, la structure suivante JSON 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 \"mot de passe\" de type \"chaîne\" est manquant."
}

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

Rapport de Problèmes

Lors de la signalisation d'un problème à Support Technique, incluez ce qui suit dans le rapport :

  • Point de terminaison API

  • Demande

  • Heure (et fuseau horaire)

  • Réponse

  • Phrase-Action-ID 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.