这是一个简单的API场景,包含示例API调用和如何将它们串联在一起以仅使用API完成简单操作的说明。可以通过API设置的选项非常广泛。请查阅REST API文档的相关部分以了解所有可用选项的更多信息。
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 调用所必需的,并且未在示例参数中列出。
使用 登录 API 进行身份验证,并提供所需参数。在这种情况下,用户名 和 密码 是必需的。
-
方法
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": "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": "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 头部中。
内容处置 头部必须包含以预定义格式的文件名,以便正确处理导入请求。
要导入源文件,请转到正文,选择
,然后 选项出现。-
方法
POST
-
请求 URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs
-
(头部) 内容处置
filename*=UTF-8''file.txt
-
(Header) Memsource
{"targetLangs":["de","fr"]}
-
(Header) 内容类型
application/octet-stream
-
响应
工作 UID (例如 dOYgeXzAdAbj4xFjuEVZP2)
异步请求 UID
使用 获取异步请求 和来自创建工作的异步请求 UID 来检查工作是否成功创建并且功能正常。
返回的工作 UID 在项目的每个工作流步骤中都是唯一的。因此,如果工作是在具有工作流的项目中创建的,响应将为每个工作流步骤返回一个唯一的工作 UID。
可重用的导入设置可以通过 创建导入设置 调用进行配置。在响应中接收到的可以在创建工作调用中使用的导入设置 UID。
要将提供商分配给工作(除非在创建工作调用中直接分配),请使用 编辑工作 调用。
在调用中插入的提供商 ID 可以通过两种方式获得:
-
要从短语应用中检索 ID,请按照以下步骤操作:
-
使用 列出用户 API 调用。
此 API 调用不需要任何特定参数,它将返回账户中所有用户的列表。响应包含用户名和 ID。
可选参数,用户名,可以添加到查询中,允许您仅列出具有特定用户名的用户。
通知已分配用户
作业UID可以作为可选参数在通知已分配用户调用中使用,连同电子邮件模板参数,表示要使用的电子邮件模板的ID。这可以通过使用列出电子邮件模板调用获得。
-
请求 URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs/notifyAssigned
-
响应
空(状态204:无内容)
这就是译员开始在其个人资料中工作的地方,就像使用短语UI一样。作业完成后,负责的项目经理会收到通知,场景的下一部分将被启动。可以通过网络hooks拦截回调,以自动启动场景的下一部分,但在此示例中不会讨论此内容。
步骤3:下载翻译(完成)文件,将项目设置为已完成
下载翻译文件
此场景假设译员完成其任务(将作业标记为已完成),但可以随时下载已完成的文件,作业不需要具有已完成状态。
要下载翻译文件,需要两个API调用:下载目标文件(异步)和根据异步请求下载目标文件调用。
第一步是调用下载目标文件(异步),并带上项目UID和作业UID参数。如果您要从具有多个工作流步骤的项目中下载已完成的文件,请确保使用您希望下载已完成文件的特定工作流步骤中的作业UID,例如修订工作流步骤。
-
要从短语应用程序中检索特定工作流步骤的作业UID,请按照以下步骤操作:
-
打开项目。
-
在作业表中,切换到您希望下载已完成文件的工作流步骤。
-
从浏览器中复制 URL 中 /job 后的唯一部分。
-
-
使用 列出工作 API 调用。
此端点返回指定项目内的工作列表。使用带有
workflowLevel
查询参数的调用。此参数是一个非零基础参数,指示返回的工作所属的工作流步骤。如果未指定,其值默认为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 和 status,将整个项目的状态更改为 已完成.此更改是手动的,但如果使用项目 状态 自动化,状态将自动更改。也可以等待一个webhook并根据收到的回调启动其他操作。
-
方法
POST
-
请求 URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/setStatus
-
请求体
{ "status":"已完成"}
-
响应
空(状态204:无内容)