Это простой сценарий интерфейса приложений API с примерами вызовов интерфейса приложений API и инструкциями о том, как объединить их для выполнения простого действия с использованием только интерфейсов приложений API. Параметры, которые можно задать через интерфейсы приложений API, обширны. Ознакомьтесь с соответствующими разделами документации по REST интерфейсу приложений API, чтобы узнать больше обо всех доступных параметрах.
Для создания сценария использовалась платформа интерфейса приложений API Postman.
В этих примерах стандартный URL-адрес запроса начинается с https://cloud.memsource.com. Если интерфейсы приложений API используются организацией в центре хранения и обработки данных в США, URL-адрес запроса должен начинаться с https://us.cloud.memsource.com.
Сценарий
-
Аутентификация
Пользователь проходит аутентификацию (эквивалент входа в систему через интерфейс приложений API).
-
Создание
Создание простого проекта, загрузка заданий и назначение лингвиста с уведомлением по электронной почте.
-
Перевод
Работа по переводу, выполняемая вне сценария интерфейса приложений API (в любом из редакторов).
-
Функция интерфейса приложений API
Как только задание выполнено (отмечено лингвистом как Завершить), статус проекта устанавливается на Завершить, и готовый документ загружается из проекта.
Методология
Для каждого отдельного вызова REST интерфейса приложений API указан соответствующий метод. Использование неверного метода (например, GET вместо POST при вызове создания проекта) приводит к неудачному вызову интерфейса приложений API.
Этап 1: аутентификация
Существует два метода аутентификации:
-
Вызов интерфейс приложений API аутентификации:
Генерирует токен аутентификации, действительный в течение 24 часов. Токен необходимо вставлять во все последующие интерфейс приложений API. Токен проверяет пользователей и позволяет им выполнять любые другие функции в рамках профиля.
-
Позволяет выполнить проверку приложения. Проверенное приложение находится в постоянном взаимодействии и не требует дальнейшей аутентификации.
Для этого сценария используется вызов интерфейс приложений API аутентификации. Сгенерированный токен требуется для всех последующих вызовов интерфейс приложений API и не указан в примерах параметров.
Использовать интерфейс приложений API Login для аутентификации с обязательными параметрами. В этом случае требуются username и password.
-
Method
POST
-
Request URL
https://cloud.memsource.com/web/api2/v3/auth/login
-
Request body:
{ "userName":"username", "password":"password"} -
Ответ
Токен аутентификации.
Участники нескольких организаций TMS имеют одинаковые имя пользователя и пароль для нескольких учетных записей. В этом случае userUid должен быть добавлен в тело запроса, чтобы указать, в какую организацию пользователь хочет войти. Если не указано иное, пользователь входит в учетную запись по умолчанию, связанную с заданным именем пользователя и паролем.
Этап 2: Создание, импортировать и назначение проекта
Создание проекта
Используйте вызов интерфейс приложений API Projects, чтобы создать проект с обязательными параметрами name, sourceLang и targetLangs.
-
Method
POST
-
Request URL
https://cloud.memsource.com/web/api2/v3/projects
-
Тело запроса
{ "name":"My project", "sourceLang":"en", "targetLangs":[ "de","fr" ]} -
Ответ
Идентификатор проекта (например, KmtNyVlz1skQd2aMVEipp7)
Можно создать шаблон проекта, используя вызов интерфейс приложений API Создать проект шаблон с Идентификатором проекта из последнего вызова.
-
Method
POST
-
Request URL
https://cloud.memsource.com/web/api2/v1/projectTemplates
-
Тело запроса
{ "project": { \"uid\": \"строка\" }, \"name\": \"строка\", \"importSettings\": { \"uid\": \"строка\" }, "useDynamicTitle": true, "dynamicTitle": "string" } -
Ответ
Идентификатор шаблона проекта (например, AmtNyVlz1skQd2aMVEipp8)
Самый эффективный способ создания проектов — использовать шаблон проекта. Используйте Создать проект из шаблона с Идентификатором шаблона проекта из последнего вызова, чтобы создать новый проект на основе настроек шаблона проекта.
Выражение {templateUid} служит в качестве заполнителя в URL-адресе запроса, куда вставляется полученный Идентификатор шаблона проекта.
-
Method
POST
-
Request URL
https://cloud.memsource.com/web/api2/v2/projects/applyTemplate/oNQiljwTGHpd2l1nnQRiu4
-
Тело запроса
{ \"name\": \"строка\", "sourceLang": "string", "targetLangs": [ \"строка\" ], "workflowSteps": [ { \"id\": \"строка\" } ], "dateDue": "2019-08-24T14:15:22Z", \"note\": \"строка\", "client": { \"id\": \"строка\" }, "businessUnit": { \"id\": \"строка\" }, "domain": { \"id\": \"строка\" }, "subDomain": { \"id\": \"строка\" }, "costCenter": { \"id\": \"строка\" } }{ "project": { \"uid\": \"строка\" }, \"name\": \"строка\", \"importSettings\": { \"uid\": \"строка\" }, "useDynamicTitle": true, "dynamicTitle": "string" } -
Ответ
UID проекта (например, BmtNyVlz1skQd2aMVEipp9)
Создание задания
С помощью UID проекта из последнего вызова новые задания можно добавлять непосредственно в только что созданный проект, используя Create Job.
Выражение {projectUid} служит в качестве заполнителя в URL запроса, куда вставляется полученный UID проекта. При вызове интерфейс приложений API Create Job Headers запроса должны быть изменены, чтобы соответствовать тем, которые требуются Phrase (в других вызовах Postman автоматически добавляет соответствующие заголовки к запросу).
Все параметры импорта необходимо вставить в Пользовательский заголовок Memsource.
Заголовок Content-Disposition должен включать имя файла в заранее определенном формате, чтобы правильно обработать заказ на импорт.
Чтобы импортировать оригинал файла, перейдите в тело, выберите , и появится опция .
-
Method
POST
-
Request URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs
-
(Заголовок) Content-Disposition
filename*=UTF-8''file.txt -
(Заголовок) Memsource
{"targetLangs":["de","fr"]} -
(Заголовок) Content-Type
application/octet-stream
-
Ответ
Job UID (e.g. dOYgeXzAdAbj4xFjuEVZP2)
UID AsyncRequest
Используйте Get asynchronous request с UID AsyncRequest из вызова Create Job, чтобы проверить, что задание было успешно создано и оно функционирует.
Возвращенный UID задания уникален для каждого этапа рабочего процесса проекта. Поэтому, если задание создается в проекте с рабочим процессом, ответ возвращает уникальный UID задания для каждого этапа рабочего процесса.
Повторно используемые настройки импорта можно сконфигурировать с помощью вызова Create import settings. UID настроек импорта, который можно использовать в вызове создания задания, получается в ответе.
Чтобы назначить провайдеров на задание (если они не назначены непосредственно в вызове Create job), используйте вызов Edit job.
Идентификатор поставщика, который вставляется в вызов, можно получить двумя способами:
-
Чтобы получить Идентификатор из приложения Phrase, выполните следующие действия:
-
Используйте Список пользователей вызов интерфейса приложений API.
Этот вызов интерфейса приложений API не требует никаких специальных параметров, и он вернет список всех пользователей в учетной записи. Ответ содержит как имена пользователей, так и Идентификаторы.
К запросу можно добавить необязательный параметр userName, позволяющий вывести список только тех пользователей, у которых есть определенные имена пользователей.
Уведомить назначенных пользователей
Идентификатор задания (UID) затем можно использовать в качестве необязательного параметра в вызове Уведомить назначенных пользователей вместе с параметром emailTemplate, представляющим Идентификатор шаблона электронной почты, который необходимо использовать. Его можно получить с помощью вызова Список шаблонов электронной почты.
-
Request URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs/notifyAssigned
-
Ответ
Пустой (статус 204: Нет контента)
Здесь переводчик начинает работу в своем профиле точно так же, как если бы использовался интерфейс Phrase. После того как задание завершено, ответственный менеджер проекта (PM) получает уведомление, и инициируется следующий этап сценария. Обратный вызов можно перехватить с помощью webhooks, чтобы автоматически запустить следующий этап сценария, но в этом примере это рассматриваться не будет.
Этап 3: Скачать переведенный (завершенный) файл, установить статус проекта «Завершен»
Скачать переведенный файл
Этот сценарий работает с допущением, что переводчик завершает свое задание (отмечает задание как Завершено), но завершенный файл можно скачать в любое время, задание не обязательно должно иметь статус Завершено.
Чтобы Скачать перевод, требуются два вызова интерфейс приложений API: Скачать перевод (асинхронно) и Скачать перевод на основе асинхронного запроса.
Первый этап — вызвать Скачать перевод (асинхронно) с параметрами projectUid и jobUid. Если вы скачиваете готовый файл из проект с несколькими этапами рабочего процесса, убедитесь, что вы используете jobUid с конкретного этапа рабочего процесса, с которого вы хотите Скачать готовый файл, например, этап рабочего процесса редактирования.
-
Чтобы получить jobUID для конкретного этапа рабочего процесса из приложения Phrase, выполните следующие этапы:
-
Откройте проект.
-
В таблице Задания переключитесь на этап рабочего процесса, с которого вы хотите Скачать готовый файл.
-
Скопируйте уникальную часть URL после /job из браузера.
-
-
Использовать Список заданий вызов интерфейс приложений API.
Эта конечная точка возвращает список заданий в указанном проект. Использовать вызов с параметром запрос
workflowLevel. Этот параметр не является параметром с нулевым значением и указывает на этап рабочего процесса, к которому относятся возвращенные задания. Если он не указан, по умолчанию его значение устанавливается на1(= первый этап рабочего процесса). Например, если вам нужно получить задания с этапа редактирования, укажите номер этого этапа в параметре запрос, т.е.2.
Вызов Скачать перевод (асинхронно) инициирует асинхронный запрос на создание и скачивание файла, содержащего перевод. Он не предоставляет файл перевод напрямую в ответе, а возвращает asyncRequestId, необходимый для следующего вызова.
-
Method
PUT
-
Request URL
https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/targetFile
-
Ответ
Идентификатор AsyncRequest
Использовать Получить асинхронный запрос с asyncRequestID из ответа, чтобы проверить, завершен ли запрос. Как только асинхронный запрос будет завершен, вы можете Скачать перевод, используя вызов Скачать перевод на основе асинхронного запроса. asyncRequestId можно использовать только один раз. Как только скачивание инициировано, asyncRequestId становится недействительным для дальнейшего использования.
-
Method
Получить
-
Request URL
https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/downloadTargetFile/1291716982
-
Ответ
Бинарный ответ с самим завершенным файлом
Завершить проект
Чтобы завершить проект после того, как задание в проекте будет выполнено, используйте вызов редактировать статус проекта с обязательными параметрами projectUid и статус, чтобы изменить статус всего проекта на Завершить. Это изменение выполняется вручную, но если используется автоматизация статус проекта, статус будет изменен автоматически. Также можно дождаться вебхук и инициировать другие действия на основе полученного обратного вызова.
-
Method
POST
-
Request URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/setStatus
-
Тело запроса
{ "статус": "COMPLETED"} -
Ответ
Пустой (статус 204: Нет контента)