我们的API将应用实体(项目、作业、设置)视为可以检索、创建、修改和删除的资源。
每个HTTP方法代表一个动作:
-
GET
检索资源,永远不改变资源
-
POST
创建资源。POST也用于不适合四种操作或具有长或复杂输入的操作——例如搜索翻译记忆或创建作业。
-
PUT
更新资源。请注意,整个实体及其所有字段都是必需的,而不仅仅是那些更改的字段;不包括它意味着应该设置为null。
-
DELETE
删除资源。
重要
输入和输出数据通常采用JSON格式,UTF-8编码。对于请求体内容类型,使用application/octet-stream或multipart/form-data。
实体在可能的情况下使用扁平结构以保持良好的响应时间。在回答中,不是包含整个子对象,而是包含包含ID、UID和其他几个属性的引用。期望使用IDReference或UidReferenc对象来引用相关实体。
所有响应列表都是分页的。使用参数pageNumber和pageSize来检索请求的数据。最大页面大小为50。
文档
OpenAPI 3.0用于API文档。Swagger代码生成器推荐用于客户端开发。
API示例
获取所有翻译记忆库的列表
GET
/web/api2/v1/transMemories
响应
200
{ "pageNumber":0, "content": [ { "internalId":1, "createdBy": { "userName": "admin", "id":"3", "firstName":"一月", "lastName":"Janocko", "role":"ADMIN", "email": "jan.janocko@phrase.com" }, "client": null, "备注": "在TM中不必要使用", "dateCreated":"2018-01-09T14:07:46+0000", "id":"1", "targetLangs": [ "es", "it" ], "subDomain": null, "businessUnit": { "id":"1", "name":"第一个BU" }, "sourceLang": "en", "domain": null, "name":"我的新TM" } ], "numberOfElements":1, "totalElements":1, "pageSize":50, "totalPages":1 }
创建新的翻译记忆库
POST
/web/api2/v1/transMemories
{{ "name":"我的新翻译记忆库" "sourceLang": "en", "targetLangs": [ "es", "it-IT" ], "businessUnit": { "id":"1" }, "备注": "在翻译记忆库中不必要使用" }
响应
201
{ "internalId":1, "createdBy": { "userName": "admin", "id":"3", "firstName":"J", "lastName":"一月", "role":"ADMIN", "email": "jan.j@phrase.com" }, "client": null, "备注": "在TM中不必要使用", "dateCreated":"2018-01-09T14:07:46+0000", "id":"1", "targetLangs": [ "es", "it" ], "subDomain": null, "businessUnit": { "id":"1", "name":"第一个BU" }, "sourceLang": "en", "domain": null, "name":"我的新TM" }
创建工作时添加文件
将此文件作为二进制附件添加到请求的主体中。确保Phrase和Content-Disposition头正确插入。
来自Postman的示例PHP:
<?php $request = new HttpRequest(); $request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20of%20your%20project%7D/jobs'); $request->setMethod(HTTP_METH_POST); $request->setQueryData(array( '令牌' => '您的令牌在这里' )); $request->setHeaders(array( 'postman-token' => 'ABC', 'cache-control' => 'no-cache', 'content-disposition' => 'filename*=UTF-8''Sample.txt', 'memsource' => '{\\"targetLangs\\":[\\"de\\",\\"fr\\",\\"es\\"],\\"callbackUrl\\":\\"https://my-shiny-service.com/consumeCallback\\",\\"importSettings\\":{\\"uid\\":\\"WF0T1SfSHxII09yKr0dZh9\\"}}' )); try { $response = $request->send(); echo $response->getBody(); } catch (HttpException $ex) { echo $ex; }
错误处理
如果在处理API请求时出现问题,将返回以下JSON结构。错误代码将始终存在;详细描述可能为null。
{ "errorCode":"InvalidArguments", "errorDescription":"缺少类型为\"字符串\"的必需参数\"password\"。" }
可以通过读取HTTP状态响应代码来检测错误响应。如果发生错误,它将永远不会设置为2xx。状态代码为400错误请求,401或403表示身份验证或授权问题。
报告问题
在向技术支持报告问题时,请在报告中包含以下内容:
-
API 端点
-
请求
-
时间(和时区)
-
响应
-
响应的短语-操作-ID