당사의 API는 애플리케이션 엔티티(프로젝트, 작업, 설정)를 검색, 생성, 수정 및 삭제할 수 있는 리소스로 간주합니다.
모든 HTTP 메서드는 작업을 나타냅니다:
-
GET
리소스를 검색하며, 리소스를 변경하지 않습니다.
-
POST
리소스를 생성합니다. POST는 네 가지 작업에 맞지 않거나 검색 번역 메모리 또는 작업 생성과 같이 길거나 복잡한 입력이 필요한 작업에도 사용됩니다.
-
PUT
리소스를 업데이트합니다. 변경된 필드뿐만 아니라 모든 필드를 포함한 전체 엔티티가 필요하다는 점에 유의하십시오. 포함하지 않으면 null로 설정해야 합니다.
-
DELETE
리소스를 삭제합니다.
중요 사항
입력 및 아웃풋 데이터는 일반적으로 UTF-8로 인코딩된 JSON 형식입니다. 요청 본문 콘텐츠 형식으로 파일의 경우 application/octet-stream 또는 multipart/form-data이 사용됩니다.
엔티티는 원활한 응답 시간을 유지하기 위해 가능한 경우 평면 구조를 사용합니다. 응답에 전체 하위 요소 객체를 포함하는 대신 ID, UID 및 기타 몇 가지 속성을 포함하는 참조가 포함됩니다. 관련 엔티티를 참조하기 위해 IDReference 또는 UidReference 객체가 예상됩니다.
모든 응답 목록은 페이징 처리됩니다. 요청된 데이터를 검색하려면 pageNumber 및 pageSize 매개변수를 사용하십시오. 최대 페이지 크기는 50입니다.
문서화
API 문서화를 위해 OpenAPI 3.0이 사용됩니다. Swagger 코드 생성기는 클라이언트 개발에 권장됩니다.
API 예시
모든 번역 메모리 목록 가져오기
GET
/web/api2/v1/transMemories
응답
200
{
"pageNumber": 0,
"content": [
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "Jan",
"lastName": "Janocko",
"role": "ADMIN",
"email": "jan.janocko@phrase.com"
},
"client": null,
\"note\": \"TM에 사용하지 않아도 됨\",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
\"es\",
"it"
],
"subDomain": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"domain": null,
\"name\": \"My new TM\"
}
],
"numberOfElements": 1,
"totalElements": 1,
"pageSize": 50,
"totalPages": 1
}
새 번역 메모리 생성
POST
/web/api2/v1/transMemories
{{
\"name\": \"My new TM\",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
\"note\": \"TM에 사용하지 않아도 됨\"
}
응답
201
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"email": "jan.j@phrase.com"
},
"client": null,
\"note\": \"TM에 사용하지 않아도 됨\",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
\"es\",
"it"
],
"subDomain": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"domain": null,
\"name\": \"My new 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(
'token' => '여기에 토큰을 입력하십시오'
));
$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-서비스.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 bad request이며, 인증 또는 권한 부여 문제의 경우 401 또는 403입니다.
문제 보고
기술 지원팀에 문제를 보고할 때는 보고서에 다음 내용을 포함하십시오:
-
API 엔드포인트
-
요청
-
시간 (및 시간대)
-
응답
-
응답의 Phrase-Action-ID