Наш интерфейс приложений API рассматривает сущности приложений (проекты, задания, настройки) как ресурсы, которые можно извлечь, создать, изменить и удалить.
Каждый метод HTTP представляет собой действие:
-
GET
Получение ресурса без необходимости изменения ресурса
-
POST
Создает ресурс. POST также используется для операций, которые не подходят ни под одну из четырех операций или сопряжены с длительным или сложным вводом (например, поиск в памяти переводов или создание заданий).
-
ПОСТАВИТЬ
Обновление ресурса. Обратите внимание, что для всей сущности обязательны все поля, а не только те, которые были изменены; не считая этого, сущности необходимо присвоить нулевое значение.
-
DELETE
Удаление ресурса.
Важно
Входные данные и результаты обычно в формате JSON, закодирован UTF-8. Для файлов типа запроса используется приложение/октет-поток или многокомпонентные/форм-данные.
Подразделения по возможности используют плоскую структуру для поддержания хорошего времени реагирования. Вместо целых дочерних элементов в ответах отображаются ссылки, содержащие Идентификатор, UID и некоторые другие свойства. Ожидается наличие объектов IDReference или UidReferencee для ссылок на взаимосвязанные объекты.
Все списки ответов находятся на странице. Используйте страницу Номер параметра и Размер страницы для получения запрошенных данных. Максимальный размер страницы - 50.
Документация
OpenAPI 3.0 используется для интерфейса приложений API. Для разработки клиентов рекомендуются генераторы хвастливого кода.
Файлы исходной документации:
Примеры API
Получить список всех баз памяти переводов
GET
/web/api2/v1/transMemories
Ответ
200
{ «Номер страницы»: 0, «контент»: [ { "internalId": 1, «createdBy»: { «Имя пользователя»: «администратор», "Идентификатор": "3", «Имя»: "январь", «Фамилия»: "Яноцко", «Роль»: «АДМИНИСТРАТОР», "Электронная почта": "jan.janocko@phrase.com" }, «клиент»: нулевой, «Примечание»: «необязательно использовать в памяти переводов (TM)», "dateCreated": "2018-01-09T14:07:46+0000", "Идентификатор": "1", "targetLangs": [ «es», "это" ], «Специализация»: нулевой, «Бизнес-подразделение»: { "Идентификатор": "1", «имя»: «Первый BU» }, "sourceLang": "en", «отрасль»: нулевой, «имя»: «Моя новая память переводов (TM)» } ], "numberOfElements": 1, "totalElements": 1, "pageSize": 50, «totalPages»: 1 }
Создать новую память переводов
POST
/web/api2/v1/transMemories
{{ «имя»: "Моя новая память переводов (TM)", "sourceLang": "en", "targetLangs": [ «es», «it-IT» ], «Бизнес-подразделение»: { "Идентификатор": "1" }, «Примечание»: «необязательно использовать в памяти переводов (TM)» }
Ответ
201
{ "internalId": 1, «createdBy»: { «Имя пользователя»: «администратор», "Идентификатор": "3", «Имя»: "J", «Фамилия»: "январь", «Роль»: «АДМИНИСТРАТОР», "Электронная почта": "jan.j@phrase.com" }, «клиент»: нулевой, «Примечание»: «необязательно использовать в памяти переводов (TM)», "dateCreated": "2018-01-09T14:07:46+0000", "Идентификатор": "1", "targetLangs": [ «es», "это" ], «Специализация»: нулевой, «Бизнес-подразделение»: { "Идентификатор": "1", «имя»: «Первый BU» }, "sourceLang": "en", «отрасль»: нулевой, «имя»: «Моя новая память переводов (TM)» }
Добавление файлов при создании задания
Добавить этот файл в текст запроса в виде двоичного вложения. Убедитесь, что Phrase и заголовки контент правильно вставлены.
Пример PHP от почтальона:
<?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', 'контент-disposition' => 'имя файла*=UTF-8'''Sample.txt', 'memsource' => '{\\"targetLangs\\":[\\"de\",\\"fr\\",\\"es\\"],\\"callbackUrl\\":\"https://my-shiny-услуга.com/consumeCallback\\",\"importSettings\\":{\\"uid\":\\"WF0T1SfSHxII09yKr0dZh9\"}}' )); попробовать { $ответ = $запрос->отправить(); echo $response->getBody(); } catch (HttpException $ex) { echo $ex; }
Обработка ошибок
Если при обработке запроса на интерфейс приложений API возникают проблемы, будет возвращена следующая структура JSON. Код ошибки будет присутствовать всегда; подробное описание может быть равным нулю.
{ "errorCode": "InvalidArguments", «errorDescription»: «Пропущен требуемый аргумент \"пароль\" типа \"строка\". }
Реакция на ошибку может быть обнаружена при чтении кода ответа. При возникновении ошибки никогда не будет установлено значение 2хх. Код статуса: 400 неудачных запросов, 401 или 403 — в связи с проблемами аутентификации или авторизации.
Сообщения о проблемах
Сообщая о проблеме в Службу техподдержки, включает в отчет следующее:
-
Конечная точка API
-
Запрос
-
Часовой (и часовой пояс)
-
Ответ
-
Phrase-Action-Идентификатор ответа