Интерфейс приложений API Phrase TMS

Технология интерфейс приложений API (TMS)

Контент автоматически переведен с английского языка с помощью Phrase Language AI.

Наш интерфейс приложений API рассматривает сущности приложения (проекты, задания, настройки) как ресурсы, которые можно извлекать, создавать, изменять и удалять. 

Каждый метод HTTP представляет собой действие:

  • GET

    Извлекает ресурс, никогда не изменяя его

  • POST

    Создает ресурс. POST также используется для операций, которые не вписываются ни в одну из четырех операций или имеют длинный или сложный ввод — например, поиск в памяти переводов или создание заданий.

  • PUT

    Обновляет ресурс. Обратите внимание, что требуется вся сущность целиком со всеми ее полями, а не только измененные; если поле не включено, это означает, что для него должно быть установлено значение null.

  • УДАЛИТЬ

    Удаляет ресурс.

Важно

Входные и выходные данные обычно представлены в формате JSON, кодировка UTF-8. Для файла в качестве контента тела запроса используется тип application/octet-stream или multipart/form-data.

Сущности используют плоскую структуру, когда это возможно, для поддержания хорошего времени отклика. Вместо включения целых дочерних объектов в ответы содержатся ссылки, которые включают Идентификатор, UID и несколько других атрибутов. Ожидается использование объектов IDReference или UidReference для ссылки на связанные сущности.

Все списки ответов разбиты на страницы. Использовать параметры pageNumber и pageSize для получения запрошенных данных. Максимальный размер страницы составляет 50.

Документация

OpenAPI 3.0 используется для Документация интерфейс приложений API. Генераторы кода Swagger рекомендуются для разработка клиент.

Примеры интерфейс приложений API

Получить список всех память переводов (TM)

GET

/web/api2/v1/transMemories

Ответ

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": "не обязательно использовать в память переводов (TM)",
            "dateCreated": "2018-01-09T14:07:46+0000",
            "id": "1",
            "targetLangs": [
                "es",
                "it"
            ],
            "subDomain": null,
            "businessUnit": {
                "id": "1",
                "name": "First BU"
            },
            "sourceLang": "en",
            "domain": null,
            "name": "My new TM"
        }
    ],
    "numberOfElements": 1,
    "totalElements": 1,
    "pageSize": 50,
    "totalPages": 1
}

Создать новую память переводов (TM)

POST

/web/api2/v1/transMemories

{{
"name": "My new TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "не обязательно использовать в память переводов (TM)"
}

Ответ

201

{
    "internalId": 1,
    "createdBy": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "role": "ADMIN",
        "email": "jan.j@phrase.com"
    },
    "client": null,
    "note": "не обязательно использовать в память переводов (TM)",
    "dateCreated": "2018-01-09T14:07:46+0000",
    "id": "1",
    "targetLangs": [
        "es",
        "it"
    ],
    "subDomain": null,
    "businessUnit": {
        "id": "1",
        "name": "First BU"
    },
    "sourceLang": "en",
    "domain": null,
    "name": "My new TM"
}

Добавление файлов при создании задания

Добавьте этот файл в тело запроса в качестве бинарного вложения. Убедитесь, что Phrase и заголовки Content-Disposition вставлены правильно.

Пример PHP из 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' => 'Ваш токен здесь'
));

$request->setHeaders(array(
'postman-токен' => '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;
}

Обработка ошибок

Если при обработке запроса к интерфейс приложений API возникнет проблема, будет возвращена следующая структура JSON. Код ошибки будет присутствовать всегда; подробное описание может быть null.

{ "errorCode": "InvalidArguments",
"errorDescription": "Отсутствует обязательный аргумент \"password\" типа \"строка\"."
}

Ответ с ошибкой можно обнаружить, считав HTTP статус код ответа. Если возникает ошибка, он никогда не будет установлен в 2xx. Статус код равен 400 для неверного запроса, 401 или 403 для проблем с аутентификация или авторизацией.

Сообщение о проблемах

При сообщении о проблеме в Техническую поддержку, включите в отчет следующее:

  • Конечная точка API

  • Запрос

  • Время (и часовой пояс)

  • Ответ

  • Phrase-Действие-Идентификатор ответа

Была ли эта статья полезной?

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.