Phrase TMS API

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 功能 

    一旦任务完成(由译员标记为完成),项目的状态设置为完成,并从项目中下载完成的文档。

方法论

每个单独的 REST API 调用都有相应的方法列出。使用不正确的方法(例如,在项目创建调用中使用GET而不是POST)会导致API调用不成功。

步骤 1:身份验证

有两种身份验证方法:

  1. Authentication API 调用:

    生成一个有效期为 24 小时的身份验证令牌。该令牌需要插入到所有后续的 API。该令牌验证用户并允许他们在个人资料中执行任何其他功能。

  2. oAuth 2.0

    允许验证应用程序。经过验证的应用程序与之保持持续通信,并且无需进一步的身份验证。

在此场景中,使用身份验证 API 调用。生成的令牌是所有后续 API 调用所必需的,并且未在示例参数中列出。

使用 Login API 进行身份验证,需提供必要的参数。在这种情况下,用户名密码 是必需的。

  • 方法 

    POST

  • 请求 URL 

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

  • 请求体: 

    { "userName":"username", "password":"password"}
  • 响应 

    身份验证令牌。

多个 TMS 公司的成员在多个账户中拥有相同的用户名和密码。在这种情况下,userUid 必须添加到请求体中,以指定用户想要登录的公司。如果未指定,用户将登录到与给定用户名和密码关联的默认账户。

步骤 2:项目创建、导入和分配

项目创建

使用 Projects API 调用来创建一个项目,必须提供参数 namesourceLangtargetLangs

  • 方法 

    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": "string"
      },
      "name": "string",
      "importSettings": {
        "uid": "string"
      },
      "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": [
        "字符串"
      ],
      "workflowSteps": [
        {
          "id": "string"
        }
      ],
      "dateDue":"2019-08-24T14:15:22Z",
      "note": "注释",
      "client": {
        "id": "string"
      },
      "businessUnit": {
        "id": "string"
      },
      "domain": {
        "id": "string"
      },
      "subDomain": {
        "id": "string"
      },
      "costCenter": {
        "id": "string"
      }
    }{
      "project": {
        "uid": "string"
      },
      "name": "string",
      "importSettings": {
        "uid": "string"
      },
      "useDynamicTitle": true,
      "dynamicTitle": "string"
    }
  • 响应 

    项目 UID(例如 BmtNyVlz1skQd2aMVEipp9)

工作创建

使用上一次调用获得的项目 UID,可以通过 创建工作,直接将新工作添加到新创建的项目中。

表达式 {projectUid} 在请求 URL 中作为占位符,插入获得的项目 UID。使用 Create Job API 调用时,请求的 Headers 必须更改为与 Phrase 所需的匹配(在其他调用中,Postman 会自动将适当的 headers 添加到请求中)。

所有导入参数需要插入到自定义 Memsource 头部中。

Content-Disposition 头部必须包含以预定义格式命名的文件名,以便正确处理导入请求。

要导入源文件,请转到正文,选择 binary,然后 选择文件 选项将出现。

  • 方法 

    POST

  • 请求 URL 

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

  • (Header) Content-Disposition 

    filename*=UTF-8''file.txt 

  • (Header) Memsource 

    {"targetLangs":["de","fr"]} 

  • (Header) Content-Type 

    application/octet-stream

  • Response 

    工作 UID (例如 dOYgeXzAdAbj4xFjuEVZP2)

    异步请求 UID

使用 获取异步请求 和来自创建工作的异步请求 UID 来检查工作是否成功创建并且功能正常。

返回的工作 UID 在项目的每个工作流步骤中都是唯一的。因此,如果工作是在具有工作流的项目中创建的,响应将返回每个工作流步骤的唯一工作 UID。 

可重用的导入设置可以通过 创建导入设置 调用进行配置。在响应中接收到的导入设置 UID 可用于创建工作调用。

要将服务商分配给工作(除非在创建工作调用中直接分配),请使用 编辑工作 调用。

在调用中插入的服务商 ID 可以通过两种方式获得:

  • 要从 Phrase 应用中获取 ID,请按照以下步骤操作: 

    1. 从设置 Setup_gear.png 页面,向下滚动到 管理 部分,点击 用户 或在侧边栏中点击 用户

      用户 页面打开。

    2. 点击用户的 ,并从浏览器中复制 URL 的最后一部分。

    3. 将此部分用作该用户的 ID。

  • 使用 列出用户 API 调用。 

    此 API 调用不需要任何特定参数,会返回账户中所有用户的列表。响应包含用户名和 ID。

    可以在查询中添加一个可选参数 userName,允许你只列出具有特定用户名的用户。

通知已分配的用户

工作 UID 可以作为可选参数在 通知已分配的用户 调用中使用,同时与 电子邮件模板 参数一起,表示要使用的电子邮件模板 ID。这可以通过使用 列出电子邮件模板 调用获得。

  • 请求 URL 

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

  • 响应 

    空(状态 204:无内容) 

这就是译员会在其个人资料中开始工作的地方,就像在使用 Phrase UI 一样。工作完成后,负责的 PM 会收到通知,并会启动场景的下一个部分。可以通过 webhook 拦截回调,以自动启动场景的下一个部分,但本示例不涉及此内容。

步骤3:下载翻译(完成)文件,将项目设置为已完成

下载翻译文件

此场景假设译员完成其任务(将工作标记为完成),但可以在任何时间下载已完成的文件,工作不需要具有完成状态。 

要下载翻译文件,需要两个API调用:下载译文文件(异步)根据异步请求下载译文文件 调用。

第一步是调用下载译文文件(异步),并带上项目UID工作UID参数。如果您要从具有多个工作流步骤的项目中下载已完成的文件,请确保使用您希望下载已完成文件的特定工作流步骤中的工作UID,例如修订工作流步骤。

  • 要从短语应用程序中检索特定工作流步骤的工作 UID,请按照以下步骤操作: 

    1. 打开项目。

    2. 在工作表中,切换到您希望下载已完成文件的工作流步骤。

    3. 从浏览器中复制 URL 中 /job 后的唯一部分。

  • 使用 列出工作 API 调用。 

    此端点返回指定项目内的工作列表。使用带有 工作流级别 查询参数的调用。此参数是一个非零基础参数,指示返回的工作属于哪个工作流步骤。如果未指定,其值默认为 1 (= 第一个工作流步骤)。例如,如果您需要获取修订步骤中的工作,请在查询参数中指定该步骤的编号,即 2

下载目标文件(异步)调用会发起一个异步请求,以生成并下载包含翻译的目标文件。它不会直接在响应中提供目标文件,而是提供一个 asyncRequestId,这是后续调用所需的。 

  • 方法 

    PUT

  • 请求 URL 

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

  • 响应 

    AsyncRequest ID

使用 获取异步请求 和响应中的 asyncRequestID 来检查请求是否已完成。一旦异步请求完成,您可以使用 基于异步请求的下载目标文件 调用来下载目标文件。asyncRequestId 只能使用一次。一旦下载被启动,asyncRequestId 将变得无效,无法进一步使用。

  • 方法 

    GET

  • 请求 URL 

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

  • 响应 

    包含已完成文件本身的二进制响应

将项目设置为已完成

要在项目中的工作完成后最终确定项目,请使用 编辑项目状态 调用,带上必填参数 projectUid状态,将整个项目的状态更改为 已完成.此更改是手动的,但如果使用项目状态自动化,状态将自动更改。也可以等待一个 webhook,并根据收到的回调启动其他操作。

  • 方法 

    POST

  • 请求 URL 

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

  • 请求体 

    { "status":"COMPLETED"}
  • 响应 

    空(状态 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.