Phrase TMS API

APIテクノロジー (TMS)

本コンテンツはPhrase Language AIの機械翻訳により、英語から翻訳されています。

当社の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が使用されます。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": "not necessary to use in 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": "not necessary to use in TM"
}

レスポンス

201

{
    "internalId": 1,
    "createdBy": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "role": "ADMIN",
        "email": "jan.j@phrase.com"
    },
    "client": null,
    "note": "not necessary to use in 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(
'トークン' => 'ここにトークンを入力してください'
));

$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": "Required argument \"password\" of type \"string\" is missing."
}

エラーレスポンスは、HTTPステータスコードを確認することで検出できます。エラーが発生した場合、それが2xxに設定されることはありません。ステータスコードは、400 (不正なリクエスト)、または認証や認可の問題の場合は401または403となります。

問題の報告

テクニカルサポートに問題を報告する際は、レポートに以下を含めてください:

  • APIエンドポイント

  • リクエスト

  • 時刻 (およびタイムゾーン)

  • レスポンス

  • レスポンスのPhrase-Action-ID

この記事は役に立ちましたか?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.