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

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

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

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

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

  • ПОЛУЧИТЬ

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

  • 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)

ПОЛУЧИТЬ

/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": "Моя новая память переводов (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 bad request, 401 или 403 при проблемах с аутентификацией или авторизацией.

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

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

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

  • Запрос

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

  • Ответ

  • Phrase-Action-Идентификатор ответа

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

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.