Наш интерфейс приложений 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.
Примеры интерфейс приложений API
Получить список всех память переводов (TM)
ПОЛУЧИТЬ
/web/api2/v1/transMemories
Ответ
200
{
"pageNumber": 0,
"content": [
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "Jan",
"lastName": "Janocko",
"role": "ADMIN",
"электронная почта": "jan.janocko@phrase.com"
},
"клиент": 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": {
"Идентификатор": "1"
},
"note": "не обязательно использовать в память переводов (TM)"
}
Ответ
201
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"электронная почта": "jan.j@phrase.com"
},
"клиент": 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(
'токен' => 'Ваш токен вставляется сюда'
));
$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-Действие-Идентификатор ответа