우리 API는 애플리케이션 엔티티(프로젝트, 작업, 설정)를 검색, 생성, 수정 및 삭제할 수 있는 리소스로 봅니다.
모든 HTTP 메서드는 작업을 나타냅니다:
-
GET
리소스를 검색하며, 리소스를 변경하지 않습니다.
-
POST
리소스를 생성합니다. POST는 네 가지 작업에 맞지 않거나 긴 또는 복잡한 입력이 필요한 작업(예: 번역 메모리 검색 또는 작업 생성)에도 사용됩니다.
-
PUT
리소스를 업데이트합니다. 전체 엔티티가 모든 필드와 함께 필요하며, 변경된 필드만 포함되지 않습니다; 포함하지 않으면 null로 설정해야 합니다.
-
DELETE
리소스를 삭제합니다.
중요 사항
입력 및 출력 데이터는 일반적으로 JSON 형식이며, UTF-8로 인코딩됩니다. 파일을 요청 본문 콘텐츠 유형으로 사용할 때 application/octet-stream 또는 multipart/form-data가 사용됩니다.
엔티티는 가능한 경우 평면 구조를 사용하여 좋은 응답 시간을 유지합니다. 전체 하위 객체를 답변에 포함하는 대신, ID, UID 및 몇 가지 다른 속성을 포함하는 참조가 포함됩니다. 관련 엔티티를 참조하기 위해 IDReference 또는 UidReferenc 객체가 예상됩니다.
모든 응답 목록은 페이지로 나뉩니다. 요청된 데이터를 검색하기 위해 매개변수 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": "1월", "lastName": "자노코", "role": "관리자", "email": "jan.janocko@phrase.com" }, "클라이언트": 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": "내 새로운 TM", "sourceLang": "en", "targetLangs": [ "es", "it-IT" ], "businessUnit": { "id": "1" }, "노트": "TM에서 사용할 필요 없음" }
응답
201
{ "internalId": 1, "createdBy": { "userName": "admin", "id": "3", "firstName": "J", "lastName": "1월", "role": "관리자", "email": "jan.j@phrase.com" }, "클라이언트": 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( '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-service.com/consumeCallback\\",\\"importSettings\\":{\\"uid\\":\\"WF0T1SfSHxII09yKr0dZh9\\"}}' )); try { $response = $request->send(); echo $response->getBody(); } catch (HttpException $ex) { echo $ex; }
오류 처리
API 요청 처리 중 문제가 발생하면 다음 JSON 구조가 반환됩니다. 오류 코드는 항상 존재하며, 자세한 설명은 null일 수 있습니다.
{ "errorCode": "InvalidArguments", "errorDescription": "유형이 \"string\"인 필수 인수 \"password\"가 누락되었습니다." }
오류 응답은 HTTP 상태 응답 코드를 읽어 감지할 수 있습니다. 오류가 발생하면 절대 2xx로 설정되지 않습니다. 상태 코드는 400 잘못된 요청, 401 또는 403은 인증 또는 권한 문제입니다.
문제 보고
문제를 기술 지원에 보고할 때 보고서에 다음을 포함하십시오:
-
API 엔드포인트
-
요청
-
시간 (및 시간대)
-
응답
-
응답의 구문-작업-ID