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