这是一个简单的 API 场景,包含示例 API 调用以及关于如何将它们链接在一起以仅使用 API 完成简单操作的说明。可以通过 API 设置的选项非常广泛。请查阅 REST API 文档<1> 的相应部分,以了解有关所有可用选项的更多信息。
Postman API 平台被用于创建该场景。
在这些示例中,标准请求 URL 以 https://cloud.memsource.com 开头。如果美国数据中心的公司使用 API,则请求 URL 应以 https://us.cloud.memsource.com 开头。
场景
-
身份验证
用户已进行身份验证(API 等同于登录)。
-
创建
创建一个简单的项目、上传工作、并分配译员及发送电子邮件通知。
-
翻译
在 API 工作流程之外(在任何编辑器中)执行的翻译工作。
-
API 功能
一旦分配完成(由译员标记为 完成),项目状态即被设置为 完成,并从项目中下载已完成的文档。
方法论
每个单独的 REST API 调用都列出了相应的方法。使用不正确的方法(例如在项目创建调用中使用 GET 而非 POST)会导致 API 调用失败。
步骤 1:身份验证
有两种身份验证方法:
-
生成一个有效期为 24 小时的身份验证令牌。该令牌需要插入到所有后续 API 中。该令牌验证用户并允许他们在个人资料内执行任何其他功能。
-
允许验证应用程序。已验证的应用程序与系统保持持续通信,无需进一步身份验证。
对于该场景,使用身份验证 API 调用。生成的令牌是所有后续 API 调用所必需的,且未列在示例参数中。
使用 Login API 进行身份验证,并提供所需参数。在这种情况下,需要 username 和 password。
-
方法
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)
可以使用上一次调用获取的项目 UID,通过 创建项目模板 API 调用来创建项目模板。
-
方法
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": [ "string" ], "workflowSteps": [ { "id": "string" } ], "dateDue": "2019-08-24T14:15:22Z", "note": "string", "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。使用创建工作 API 调用时,必须更改请求的 标头 以匹配 Phrase 所需的标头(在其他调用中,Postman 会自动将适当的标头添加到请求中)。
所有导入参数都需要插入到自定义 Memsource 标头中。
Content-Disposition 标头必须包含预定义格式的文件名,以便正确处理导入请求。
要导入原文/源语文件,请转到正文,选择 ,然后会出现 选项。
-
方法
POST
-
请求 URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs
-
(标头) Content-Disposition
filename*=UTF-8''file.txt -
(Header) Memsource
{"targetLangs":["de","fr"]} -
(Header) 内容类型
application/octet-stream
-
响应
工作 UID(例如 dOYgeXzAdAbj4xFjuEVZP2)
AsyncRequest UID
使用 获取异步请求 并配合来自创建工作调用的 AsyncRequest UID,以检查工作是否已成功创建且功能正常。
返回的工作 UID 在项目的每个工作流步骤中都是唯一的。因此,如果工作是在具有工作流的项目中创建的,则响应会为每个工作流步骤返回一个唯一的工作 UID。
可重复使用的导入设置可以通过 创建导入设置 调用进行配置。响应中会收到一个可在创建工作调用中使用的导入设置 UID。
若要将服务商分配给工作(除非在创建工作调用中直接分配),请使用 编辑工作 调用。
调用中插入的服务商 ID 可以通过两种方式获取:
-
若要从 Phrase 应用程序中检索 ID,请按照以下步骤操作:
-
使用 列表用户 API 调用。
此 API 调用不需要任何特定参数,它将返回账户中所有用户的列表。响应包含用户名和 ID。
可以添加一个可选参数 userName 到查询中,允许您仅列出具有特定用户名的用户。
通知已分配用户
工作 UID 随后可用作 通知已分配用户 调用中的可选参数,以及代表要使用的电子邮件模板 ID 的 emailTemplate 参数。这可以通过使用 列表电子邮件模板 调用获得。
-
请求 URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs/notifyAssigned
-
响应
空(状态 204:无内容)
这是译员在其个人资料中开始工作的地方,就像使用 Phrase UI 一样。工作完成后,负责的项目经理会收到通知,并启动场景的下一个部分。可以通过 webhooks 拦截回调以自动启动场景的下一个部分,但这在此示例中不会涉及。
步骤 3:下载译文(完成)文件,将项目设置为已完成
下载译文文件
此场景基于译员完成其工作(将工作标记为 完成)的假设,但译文文件可随时下载,工作无需处于 完成 状态。
要下载译文文件,需要两个 API 调用:下载译文文件(异步) 和 基于异步请求下载译文文件 调用。
第一步是使用 projectUid 和 jobUid 参数调用 下载译文文件(异步)。如果您要从具有多个工作流步骤的项目中下载已完成的文件,请确保使用您想要下载已完成文件的特定工作流步骤的 jobUid,例如修订工作流步骤。
-
要从 Phrase 应用程序中检索特定工作流步骤的 jobUID,请按照以下步骤操作:
-
打开项目。
-
在工作列表中,切换到您想要下载已完成文件的工作流步骤。
-
从浏览器中复制 URL 中 /job 之后的部分。
-
-
使用 列表工作 API 调用。
此端点返回指定项目内的工作列表。使用带有
workflowLevel查询参数的调用。此参数是一个非零基参数,用于指示返回的工作所属的工作流步骤。如果未指定,其值默认设置为1(= 第一个工作流步骤)。例如,如果您需要从修订步骤获取工作,请在查询参数中指定该步骤的编号,即2。
下载译文文件(异步)调用会发起一个异步请求,以生成并下载包含译文的译文文件。它不会直接在响应中提供译文文件,而是提供后续调用所需的 asyncRequestId。
-
方法
PUT
-
请求 URL
https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/targetFile
-
响应
异步请求 ID
使用响应中的 asyncRequestID 调用 获取异步请求,以检查请求是否完成。一旦异步请求完成,您可以使用 下载译文文件(基于异步请求) 调用来下载译文文件。asyncRequestId 只能使用一次。一旦下载启动,asyncRequestId 将无法再次使用。
-
方法
GET
-
请求 URL
https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/downloadTargetFile/1291716982
-
响应
包含已完成文件的二进制响应
将项目设置为已完成
若要在项目中的工作完成后最终确定项目,请使用 编辑项目状态 调用,并提供强制参数 projectUid 和 status,将整个项目的状态更改为 Completed。此更改为手动更改,但如果使用了 项目状态自动化,则状态将自动更改。也可以等待 webhook 并根据收到的回调启动其他操作。
-
方法
POST
-
请求 URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/setStatus
-
请求正文
{ "status": "COMPLETED"} -
响应
空(状态 204:无内容)