私たちのAPIは、アプリケーションエンティティ(プロジェクト、ジョブ、設定)を取得、作成、変更、削除できるリソースとして見ています。
すべてのHTTPメソッドはアクションを表します:
-
GET
リソースを取得し、リソースを変更することはありません
-
POST
リソースを作成します。POSTは、4つの操作のいずれにも当てはまらない操作や、長いまたは複雑な入力(翻訳メモリの検索やジョブの作成など)にも使用されます。
-
PUT
リソースを更新します。変更されたフィールドだけでなく、すべてのフィールドを含む全体のエンティティが必要であることに注意してください。含まれていない場合はnullに設定されるべきです。
-
DELETE
リソースを削除します。
注意
入力および出力データは通常、JSON形式でUTF-8エンコードされています。リクエストボディのコンテンツタイプとして、application/octet-streamまたはmultipart/form-dataが使用されます。
エンティティは、良好な応答時間を維持するために可能な限りフラットな構造を使用します。回答に全体の子オブジェクトを含める代わりに、ID、UID、およびいくつかの他の属性を含む参照が含まれます。関連するエンティティを参照するためのIDReferenceまたはUidReferenceオブジェクトが期待されます。
すべての応答リストはページ分けされています。要求されたデータを取得するには、パラメータ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":"1月", "lastName":"ジャノコ", "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" }, "注": "TMで使用する必要はありません" }
レスポンス
201
{ "internalId":1, "createdBy": { "userName": "admin", "id":"3", "firstName":"J" "lastName":"1月", "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とContent-Dispositionヘッダーが正しく挿入されていることを確認してください。
PostmanからのサンプルPHP:
<?php $request = new HttpRequest(); $request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BあなたのプロジェクトのUID%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":"タイプが\"文字列\"の必須引数\"password\"が欠落しています。" }
エラー応答はHTTPステータスレスポンスのコードを読み取ることで検出できます。エラーが発生した場合、2xxには決して設定されません。ステータスコードは400不正リクエスト、401または403は認証または承認の問題です。
問題の報告
テクニカルサポートに問題を報告する際は、次の内容を報告に含めてください:
-
APIエンドポイント
-
リクエスト
-
時間(およびタイムゾーン)
-
レスポンス
-
レスポンスのフレーズ-アクション-ID