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