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

Using APIs (TMS)

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

Это простой сценарий интерфейса приложений API с примерами вызовов API и инструкциями о том, как связать их вместе, чтобы завершить простое действие, используя только интерфейс приложений API. Параметры, которые можно задать через интерфейсы приложений API, весьма обширны. Обратитесь к соответствующим разделам REST API документации, чтобы узнать больше обо всех доступных параметрах.

Платформа Postman API использовалась для создания этого сценария.

В этих примерах стандартный URL-адрес запроса начинается с https://cloud.memsource.com. В случае, если интерфейсы приложений API используются организацией в центре хранения и обработки данных США, URL-адрес запроса должен начинаться с https://us.cloud.memsource.com.

Сценарий

  1. Аутентификация  

    Пользователь аутентифицирован (эквивалент API входа в систему).

  2. Создание  

    Создание простого проекта, загрузка заданий и назначение лингвиста с уведомлением по электронной почте.

  3. Перевод 

    Работа по переводу выполняется вне сценария API (в любом из редакторов).

  4. Функция API 

    После завершения задания (отмеченного как Завершено лингвистом), статус проекта устанавливается на Завершено и завершённый документ скачивается из проекта.

Методология

У каждого отдельного вызова интерфейса приложений API указан соответствующий метод. Если используется неправильный метод (например, GET вместо POST при создании проекта), вызов интерфейса приложений API будет неуспешным.

Этап 1: Аутентификация

Существует два метода аутентификации:

  1. Вызов интерфейса приложений API для аутентификации:

    Генерирует токен аутентификации, действительный в течение 24 часов. Токен необходимо вставить во все последующие вызовы интерфейса приложений API. Токен подтверждает личность пользователя и позволяет выполнять прочие функции профиля.

  2. oAuth 2.0

    Позволяет проверить приложение. Проверенное приложение находится в постоянной связи и не требует дальнейшей аутентификации.

В этом сценарии используется вызов интерфейса приложений API аутентификации. Сгенерированный токен требуется для всех последующих вызовов API и не указан в примерах параметров.

Для аутентификации с обязательными параметрами используйте интерфейс приложений API Login. В этом случае имя пользователя и пароль обязательны.

  • Метод 

    POST

  • URL запроса 

    https://cloud.memsource.com/web/api2/v3/auth/login

  • Тело запроса: 

    { "userName":"username", "password":"password"}
  • Ответ 

    Токен аутентификации.

Члены нескольких организаций TMS имеют одно и то же имя пользователя и пароль для нескольких учетных записей. В этом случае userUid должен быть добавлен в тело запроса, чтобы указать, в какую организацию пользователь хочет войти. Если не указано, пользователь входит в учетную запись по умолчанию, связанную с данным именем пользователя и паролем.

Этап 2: Создание проекта, импорт и назначение

Создание проекта

Используйте вызов API Проекты для создания проекта с обязательными параметрами имя, исходный язык и целевые языки.

  • Метод 

    POST

  • URL запроса 

    https://cloud.memsource.com/web/api2/v3/projects

  • Тело запроса 

    { "name":"My project", "sourceLang":"en", "targetLangs":[ "de","fr" ]}
  • Ответ 

    UID проекта (например, KmtNyVlz1skQd2aMVEipp7)

Возможно создать шаблон проекта, используя вызов интерфейса приложений API Создать шаблон проекта с UID проекта из последнего вызова.

  • Метод 

    POST

  • URL запроса 

    https://cloud.memsource.com/web/api2/v1/projectTemplates

  • Тело запроса 

    {
      "project": {
        "uid": "строка"
      },
      "name": "строка",
      "importSettings": {
        "uid": "строка"
      },
      "useDynamicTitle": true,
      "dynamicTitle": "string"
    }
  • Ответ 

    UID шаблона проекта (например, AmtNyVlz1skQd2aMVEipp8)

Самый эффективный способ создать проект — использовать шаблон проекта. Используйте Создать проект из шаблона с UID шаблона проекта из последнего вызова, чтобы создать новый проект на основе настроек шаблона проекта.

Выражение {templateUid} служит заполнителем в URL запроса, куда вставляется полученный UID шаблона проекта. 

  • Метод 

    POST

  • URL запроса 

    https://cloud.memsource.com/web/api2/v2/projects/applyTemplate/oNQiljwTGHpd2l1nnQRiu4

  • Тело запроса 

    {
      "name": "string",
      "sourceLang": "string",
      "targetLangs": [
        "string"
      ],
      "workflowSteps": [
        {
          "id": "string"
        }
      ],
      "dateDue": "2019-08-24T14:15:22Z",
      "note": "string"
      "client": {
        "id": "string"
      },
      "businessUnit": {
        "id": "string"
      },
      "domain": {
        "id": "строка"
      },
      "subDomain": {
        "id": "строка"
      },
      "costCenter": {
        "id": "строка"
      }
    }{
      "project": {
        "uid": "string"
      },
      "name": "string",
      "importSettings": {
        "uid": "string"
      },
      "useDynamicTitle": true,
      "dynamicTitle": "string"
    }
  • Ответ 

    UID проекта (например, BmtNyVlz1skQd2aMVEipp9)

Создание задания

С помощью UID проекта из последнего вызова новые задания могут быть добавлены непосредственно в только что созданный проект, используя Создать задание.

Выражение {projectUid} служит заполнителем в URL запроса, куда вставляется полученный UID проекта. С помощью вызова интерфейса приложений API «Создать задание» Headers запроса должны быть изменены, чтобы совпадать с теми, которые требуются Phrase (в других вызовах Postman автоматически добавляет соответствующие заголовки к запросу).

Все параметры импорта необходимо вставить в пользовательский Memsource заголовок.

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

Чтобы импортировать исходный файл, перейдите в тело, выберите binary и появится опция Выбрать файл<2>.

  • Метод 

    POST

  • 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

  • Ответ 

    UID задания (например, dOYgeXzAdAbj4xFjuEVZP2)

    UID асинхронного запроса

Используйте Получить асинхронный запрос с UID асинхронного запроса из вызова «Создать задание», чтобы проверить, что задание было успешно создано и что оно работает.

Возвращаемый UID задания уникален на каждом этапе рабочего процесса в проекте. Поэтому, если задание создано в проекте с рабочим процессом, ответ возвращает уникальный UID задания для каждого этапа рабочего процесса. 

Переиспользуемые настройки импорта можно настроить с помощью вызова Создать настройки импорта. UID настройки импорта, который может быть использован в вызове создания задания, получен в ответе.

Чтобы назначить поставщиков на задание (если они не назначены напрямую в вызове Создания задания), используйте вызов Редактировать задание.

Идентификатор поставщика, который вставляется в вызов, можно получить двумя способами:

  • Чтобы получить Идентификатор из приложения Phrase, выполните следующие шаги: 

    1. На странице «Настройки» Setup_gear.png прокрутите вниз до раздела «Администрирование» Администрирование и нажмите «Пользователи» Пользователи или выберите «Пользователи» Пользователи в боковой панели.

      Открывается страница Пользователи.

    2. Нажмите на фамилию пользователя и скопируйте последнюю часть URL из браузера.

    3. Используйте эту часть как Идентификатор для этого пользователя.

  • Используйте список пользователей вызов интерфейса приложений API. 

    Этот API вызов не требует никаких специфических параметров и вернет список всех пользователей в учетной записи. Ответ содержит как имена пользователей, так и идентификаторы.

    Необязательный параметр userName можно добавить к запросу, чтобы вывести только пользователей с определёнными именами пользователей.

Уведомить назначенных пользователей

UID задания затем можно использовать как необязательный параметр в вызове Уведомить назначенных пользователей вместе с параметром emailTemplate, который представляет идентификатор шаблона электронной почты, который будет использоваться. Это можно получить с помощью вызова Список шаблонов электронной почты.

  • URL запроса 

    https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs/notifyAssigned

  • Ответ 

    Пусто (Статус 204: Нет содержимого) 

Здесь переводчик начнет работать в своем профиле так же, как если бы использовался интерфейс Phrase. После завершения задания менеджер проекта (PM) получает уведомление, и инициируется следующая часть сценария. Обратный вызов можно перехватить через вебхуки, чтобы автоматически начать следующую часть сценария, но это не будет рассмотрено в этом примере.

Этап 3: Скачать переведённый (завершённый) файл, установить проект в статус «Завершён»

Скачать переведенный файл

Этот сценарий работает с предположением, что переводчик завершает свое задание (отмечает задание как Завершено), но завершенный файл можно скачать в любое время, задание не обязательно должно иметь статус Завершено.  

Чтобы скачать переведенный файл, необходимо выполнить два вызова API: Скачать файл перевода (асинхронно) и Скачать файл перевода на основе асинхронного запроса вызовы.

Первый шаг — вызвать Скачать файл перевода (асинхронно) с параметрами projectUid и jobUid. Если скачивается завершённый файл из проекта с несколькими этапами рабочего процесса, убедитесь, что используется jobUid из конкретного этапа рабочего процесса, с которого нужно скачать завершённый файл, например, этап ревизии.

  • Чтобы получить jobUID для конкретного этапа рабочего процесса из приложения Phrase, выполните следующие шаги: 

    1. Откройте проект.

    2. В таблице заданий переключитесь на этап рабочего процесса, из которого вы хотите скачать завершенный файл.

    3. Скопируйте уникальную часть URL после /job из браузера.

  • Используйте список заданий вызов интерфейса приложений API. 

    Этот endpoint возвращает список заданий в указанном проекте. Используйте вызов с параметром запроса workflowLevel. Этот параметр не начинается с нуля и указывает этап рабочего процесса, к которому принадлежат возвращённые задания. Если не указано иное, его значение по умолчанию установлено в 1 (= первый этап рабочего процесса). Например, если вам нужно получить задания с этапа ревизии, укажите номер этого этапа в параметре запроса, т.е. 2.

Вызов «Скачать файл перевода» (асинхронно) инициирует асинхронный запрос на генерацию и скачивание файла перевода, содержащего переводы. Он не предоставляет файл перевода напрямую в ответе, но asyncRequestId необходим для следующего вызова. 

  • Метод 

    PUT

  • URL запроса 

    https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/targetFile 

  • Ответ 

    Идентификатор асинхронного запроса

Используйте Получить асинхронный запрос с asyncRequestID из ответа, чтобы проверить, завершен ли запрос. После завершения асинхронного запроса вы можете скачать файл перевода, используя вызов Скачать файл перевода на основе асинхронного запроса. asyncRequestId можно использовать только один раз. После инициации скачивания asyncRequestId становится недействительным для дальнейшего использования.

  • Метод 

    GET

  • URL запроса 

    https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/downloadTargetFile/1291716982 

  • Ответ 

    Двоичный ответ с завершённым файлом

Установить проект в статус «Завершён»

Чтобы завершить проект, как только задание в проекте завершено, используйте вызов Редактировать статус проекта с обязательными параметрами projectUid и status, чтобы изменить статус всего проекта на Завершено. Это изменение выполняется вручную, но если используется Автоматизация статуса проекта, статус будет изменён автоматически. Также возможно дождаться webhook и инициировать другие действия на основе полученного обратного вызова.

  • Method 

    POST

  • Request URL 

    https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/setStatus 

  • Request body 

    { "status": "Завершено"}
  • Response 

    Пустой (Статус 204: Нет контента)

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

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.