API de Phrase TMS

API Technology (TMS)

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

Notre API considère les entités d'application (projets, tâches, paramètres) comme des ressources pouvant ê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 de tâches.

  • PUT

    Met à jour la ressource. Veuillez noter que l'ensemble de l'entité est requis avec tous ses champs, pas uniquement ceux qui ont été modifiés ; 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, le 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 à des entités liées.

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 du client.

Exemples API

Obtenir la liste de tous 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",
                "rôle": "ADMIN",
                "email": "jan.janocko@phrase.com"
            },
            "client": null,
            "note": "pas nécessaire d'utiliser dans la mémoire de traduction",
            "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": "Ma nouvelle mémoire de traduction"
        }
    ],
    "numberOfElements": 1,
    "totalElements": 1,
    "pageSize": 50,
    "totalPages": 1
}

Créer une nouvelle mémoire de traduction

POST

/web/api2/v1/transMemories

{{
"name": "Ma nouvelle mémoire de traduction",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "il n'est pas nécessaire d'utiliser dans la mémoire de traduction"
}

Réponse

201

{
    "internalId": 1,
    "createdBy": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "rôle": "ADMIN",
        "email": "jan.j@phrase.com"
    },
    "client": null,
    "note": "il n'est pas nécessaire d'utiliser dans la mémoire de traduction",
    "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": "Ma nouvelle mémoire de traduction"
}

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%20of%20your%20project%7D/jobs');
$request->setMethod(HTTP_METH_POST);

$request->setQueryData(array(
'jeton' => 'Votre jeton doit être placé 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

Si un problème survient lors du traitement d'une demande d'JSON, la structure 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 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 demande, 401 ou 403 pour des problèmes d'authentification ou d'autorisation.

Signalement 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

  • Identifiant d'action de Phrase 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.