API de Phrase TMS

Tecnología de API (TMS)

El contenido se traduce automáticamente del inglés por Phrase Language AI.

Nuestra API ve las entidades de la aplicación (proyectos, trabajos, configuración) como recursos que pueden recuperarse, crearse, modificarse y eliminarse. 

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 que tienen una entrada larga o compleja, como buscar memorias de traducción o crear trabajos.

  • PUT

    Actualiza el recurso. Tenga en cuenta que se requiere la entidad completa con todos sus campos, no solo los modificados; no incluirlo significa que debe establecerse en nulo.

  • 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 usa application/octet-stream o multipart/form-data.

Las entidades usan una estructura plana cuando es posible para mantener buenos tiempos de respuesta. En lugar de incluir objetos de elemento secundario completos en las respuestas, se incluyen referencias que contienen el ID, UID y algunos otros atributos. Se esperan objetos IDReference o UidReference para hacer referencia a entidades relacionadas.

Todas las listas de respuesta están paginadas. Usar los parámetros pageNumber y pageSize para recuperar los datos solicitados. El tamaño máximo de página es 50.

Documentación

OpenAPI 3.0 se usa para la Documentación API. Los generadores de código Swagger se recomiendan para el desarrollo de cliente.

Ejemplos de API

Obtener lista de todas las memorias de traducción

GET

/web/api2/v1/transMemories

Respuesta

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": "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",
            "domain": null,
            "name": "My new TM"
        }
    ],
    "numberOfElements": 1,
    "totalElements": 1,
    "pageSize": 50,
    "totalPages": 1
}

Crear una nueva memoria de traducción

POST

/web/api2/v1/transMemories

{{
"name": "My new TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "no es necesario usar en la TM"
}

Respuesta

201

{
    "internalId": 1,
    "createdBy": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "role": "ADMIN",
        "email": "jan.j@phrase.com"
    },
    "client": null,
    "note": "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",
    "domain": null,
    "name": "My new TM"
}

Agregar archivos al crear un trabajo

Agregar este archivo al cuerpo de la solicitud como un archivo adjunto binario. Asegúrese de que Phrase y los encabezados Content-Disposition se inserten correctamente.

Ejemplo de PHP de 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(
'token' => 'Su 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;
}

Gestión de errores

Si hay un problema al gestionar una solicitud de API, se devolverá la siguiente estructura JSON. El código de error siempre estará presente; la descripción detallada puede ser nula.

{ "errorCode": "InvalidArguments",
\"errorDescription\": \"Falta el argumento obligatorio \\\"password\\\" de tipo \\\"cadena\\\" .\"
}

Se puede detectar una respuesta de error leyendo el código de estado de la respuesta HTTP. Si ocurre un error, nunca se establecerá en 2xx. El estado es 400 bad request, 401 o 403 para problemas de autenticación o autorización.

Informar de problemas

Al informar de un problema al Soporte técnico, incluya lo siguiente en el informe:

  • Punto de conexión API

  • Solicitud

  • Hora (y zona horaria)

  • Respuesta

  • Phrase-Action-ID de la respuesta

¿Fue útil este artículo?

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.