우리의 API는 애플리케이션 엔티티(프로젝트, 작업, 설정)를 검색, 생성, 수정 및 삭제할 수 있는 리소스로 봅니다.
모든 HTTP 메서드는 작업을 나타냅니다:
-
GET
리소스를 검색하며, 리소스를 변경하지 않습니다.
-
POST
리소스를 생성합니다. POST는 네 가지 작업 중 어떤 것도 맞지 않거나 긴 또는 복잡한 입력이 필요한 작업(예: 번역 메모리 검색 또는 작업 생성)에도 사용됩니다.
-
PUT
리소스를 업데이트합니다. 전체 엔티티가 모든 필드와 함께 필요하며, 변경된 필드만 포함되지 않습니다; 포함하지 않으면 null로 설정해야 합니다.
-
DELETE
리소스를 삭제합니다.
중요 사항
입력 및 출력 데이터는 일반적으로 JSON 형식이며, UTF-8로 인코딩됩니다. 요청 본문 콘텐츠 유형으로 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": "내 새로운 TM"
}
],
"numberOfElements": 1,
"totalElements": 1,
"pageSize": 50,
"totalPages": 1
}
새 번역 메모리 생성하기
POST
/web/api2/v1/transMemories
{{
"name": "내 새로운 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": "내 새로운 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',
'메모리소스' => '{\\"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 엔드포인트
-
요청
-
시간 (및 시간대)
-
응답
-
응답의 구문-행동-아이디