Nuestra API ve las entidades de aplicación (proyectos, trabajos, configuraciones) como recursos que puedes recuperar, crear, modificar y eliminar.
Cada método HTTP representa una acción:
-
GET
Recupera un recurso, sin cambiar nunca el recurso
-
POST
Crea un recurso. POST también se usa para operaciones que no encajan en ninguna de las cuatro operaciones o tienen entradas largas o complejas, como buscar memorias de traducción o crear trabajos.
-
PUT
Actualiza el recurso. Ten en cuenta que se requiere toda la entidad con todos sus campos, no solo los que se han cambiado; si no lo incluyes, significa que debe establecerse en null.
-
DELETE
Elimina el recurso.
Importante
Los datos de entrada y salida suelen estar en formato JSON, codificados en UTF-8. Para un archivo como tipo de contenido del cuerpo de la solicitud, se utiliza application/octet-stream o multipart/form-data.
Las entidades utilizan una estructura plana cuando es posible para mantener buenos tiempos de respuesta. En lugar de incluir elementos secundarios completos en las respuestas, se incluyen referencias que contienen el ID, UID y algunos otros atributos. Se esperan objetos de referencia IDReference o UidReference para referirse a entidades relacionadas.
Todas las listas de respuestas están paginadas. Usa los parámetros pageNumber y pageSize para recuperar los datos solicitados. El tamaño máximo de página es 50.
Documentación
Se usa OpenAPI 3.0 para la documentación de API. Se recomiendan generadores de código Swagger para el desarrollo de clientes.
Ejemplos de API
Obtener la lista de todas las memorias de traducción
GET
/web/api2/v1/transMemories
Respuesta
200
{
"pageNumber": 0,
"contenido": [
{
"internalId": 1,
"creadoPor": {
"userName": "admin",
"id": "3",
"firstName": "Jan",
"lastName": "Janocko",
"role": "ADMIN",
"email": "jan.janocko@phrase.com"
},
"cliente": null,
"nota": "no es necesario usar en TM",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"subdominio": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"dominio": null,
"name": "Mi nueva TM"
}
],
"numberOfElements": 1,
"totalElements": 1,
"pageSize": 50,
"totalPages": 1
}
Crear una nueva memoria de traducción
POST
/web/api2/v1/transMemories
{{
"name": "Mi nueva TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "no es necesario usar en TM"
}
Respuesta
201
{
"internalId": 1,
"creadoPor": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"email": "jan.j@phrase.com"
},
"cliente": null,
"nota": "no es necesario usar en TM"
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"subdominio": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"dominio": null,
"name": "Mi nueva TM"
}
Agregando archivos al crear un trabajo
Agrega este archivo al cuerpo de la solicitud como un archivo adjunto binario. Asegúrate de que Phrase y los encabezados Content-Disposition estén correctamente insertados.
Ejemplo de PHP desde Postman:
<?php
$request = new HttpRequest();
$request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20de%20tu%20proyecto%7D/jobs');
$request->setMethod(HTTP_METH_POST);
$request->setQueryData(array(
'token' => 'Tu identificador único (token) va aquí'
));
$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;
}
Manejo de Errores
Si hay un problema al manejar una solicitud de API, la siguiente JSON estructura será devuelta. El código de error siempre estará presente; la descripción detallada puede ser nula.
{ "errorCode": "InvalidArguments",
"errorDescription": "Falta el argumento requerido \"contraseña\" de tipo \"cadena\"." ,
}
Una respuesta de error se puede detectar leyendo el código de estado HTTP código de la respuesta. Si ocurre un error, nunca se establecerá en 2xx. El código de estado es 400 solicitud incorrecta, 401 o 403 por problemas de autenticación o autorización.
Reportar Problemas
Cuando informes un problema a Soporte Técnico, incluye lo siguiente en el informe:
-
Punto de conexión API
-
Solicitud
-
Hora (y zona horaria)
-
Respuesta
-
Phrase-Action-ID de la respuesta