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