APIは、アプリケーションエンティティ(プロジェクト、ジョブ、設定)を取得、作成、変更、削除できるリソースと見なします。
すべてのHTTPメソッドはアクションを表します。
-
GET
リソースを取得し、リソースを変更することはありません
-
POST
リソースを作成します。POSTは、翻訳メモリの検索やジョブの作成など、4つの操作のいずれにも当てはまらない操作や、入力が長く複雑な操作にも使用されます。
-
PUT
リソースを更新します。エンティティ全体は 必須 であり、変更されたフィールドだけでなく、すべてのフィールドが含まれていることに注意してください。含まれていないということは、nullに設定する必要があることを意味します。
-
DELETE
リソースを削除します。
重要
入力および出力データ は通常、UTF-8エンコードされた JSON ファイル形式です。リクエスト本文のコンテンツタイプとしてファイルを使用する場合、application/octet-stream または multipart/form-data が使用されます。
良好な応答時間を維持するために、エンティティは可能な限りフラットな構造を使用します。子オブジェクト全体を回答に含めるのではなく、ID、UID、およびその他のいくつかの属性を含む参照が含まれます。IDReference オブジェクトまたは UidReference オブジェクトのいずれかが関連エンティティを参照する必要があります。
すべての応答リストがページングされます。パラメータ pageNumber と pageSize を使用して、要求されたデータを取得します。最大ページサイズは50です。
ドキュメント
APIドキュメントにはOpenAPI 3.0が使用されます。クライアント開発にはスワガーコードジェネレータが推奨されます。
生のドキュメントファイル:
API例
すべての翻訳メモリの一覧を取得
GET
/web/api2/v1/transMemories
応答
200
{ "pageNumber":0, "content": [ { "internalId":1, "createdBy": { "userName": "admin", "id":"3", "firstName":"Jan", "lastName":"Janocko", "role":「管理者」、 "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":「新しい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":「管理者」、 "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 と コンテンツ破棄 ヘッダーが正しく挿入されていることを確認します。
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' => 'キャッシュなし', '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":「文字列」タイプの必須引数「パスワード」が見つかりません。 }
エラーレスポンスは、 レスポンスのHTTPステータスコードを読み取ることで検出できます。エラーが発生した場合、2xxに設定されることはありません。ステータスコードは400 bad request、認証または認可の問題の場合は401または403です。
問題の報告
テクニカルサポートに問題を報告する場合、 は以下の項目をレポートに含めます。
-
APIエンドポイント
-
リクエスト
-
時間 (およびタイムゾーン)
-
レスポンス
-
応答のPhrase-Action-ID