これは単純な API シナリオです。サンプル API コールを使用し、API のみを使用して単純なアクションを完了するためにそれらを連鎖させる方法について説明します。APIで設定できるオプションは多岐にわたります。使用可能なすべてのオプションの詳細については、REST APIドキュメントのそれぞれのセクションを参照してください。
シナリオの作成には Postman API プラットフォームが使用されました。
これらの例では、標準のリクエストURLは https://cloud.memsource.com
で始まります。APIを米国データセンター内の組織で使用する場合は、リクエストURLはhttps://us.cloud.memsource.com
で始まる必要があります。
シナリオ
-
認証
ユーザーが認証されます(ログインに相当する API)。
-
作成
シンプルプロジェクトの作成、ジョブのアップロード、リンギストの割り当て(メール注意)
-
翻訳
エディタの種類を問わず、実際の翻訳作業は、この API シナリオに含まれていません。
-
API 関数
割り当てが完了 (リンギストによって完了とマークされる) すると、プロジェクトのステータスが 「完了」 に設定され、完成したドキュメントがプロジェクトからダウンロードされます。
方法論
各 REST API コールには、適切なメソッドがリストされています。間違ったメソッド (たとえば、プロジェクト作成呼び出しで POST ではなく GET) を使用すると、API 呼び出しが失敗します。
ステップ1:認証
認証方式には 2 つあります。
このシナリオでは、認証 API コールが使用されます。生成されたトークンは、後続のすべての API コールに必要であり、サンプルのパラメータには含まれていません。
認証には Login API と必要なパラメータを使用します。この場合、ユーザー名とパスワードが必要です。
-
メソッド
POST
-
リクエストURL
https://cloud.memsource.com/web/api2/v3/auth/login
-
リクエスト本文:
{ "userName":"username", "password":"password"}
-
返答
認証トークン
複数の TMS 組織のメンバーは、複数のアカウントに対して同じユーザー名とパスワードを持っています。この場合、userUid
をリクエストボディに追加して、ユーザーがログインする組織を指定する必要があります。指定されていない場合、ユーザーは指定されたユーザー名とパスワードに関連付けられたデフォルト アカウントにログインします。
ステップ2:プロジェクト作成、インポート、アサイン
プロジェクト作成
プロジェクト API コールを使用して、必須パラメータの name 、 sourceLang 、および targetLangs でプロジェクトを作成します。
-
メソッド
POST
-
リクエストURL
https://cloud.memsource.com/web/api2/v3/projects
-
リクエスト本文
{ "name":"My project", "sourceLang":"en", "targetLangs":[ "de","fr" ]}
-
返答
Project UID (e.g. KmtNyVlz1skQd2aMVEipp7)
プロジェクトテンプレートは、最後の呼び出しのプロジェクト UID でプロジェクトテンプレート作成
API 呼び出しを使用して作成できます。
-
メソッド
POST
-
リクエストURL
https://cloud.memsource.com/web/api2/v1/projectTemplates
-
リクエスト本文
{ "project": { "uid": "string" }, "name": "string", "importSettings": { "uid": "string" }, "useDynamicTitle": true, "dynamicTitle": "string" }
-
返答
プロジェクトテンプレート UID (例:AmtNyVlz1skQd2aMVEipp8)
プロジェクトを作成する最も効率的な方法は、プロジェクトテンプレートを使用することです。最後の呼び出しのプロジェクトテンプレート UID でテンプレートからプロジェクト作成を使用し、プロジェクトテンプレートの設定に基づいて新規プロジェクトを作成します。
式 {templateUid}
は、取得したプロジェクトテンプレート UID が挿入される要求 URL のプレースホルダーとして機能します。
-
メソッド
POST
-
リクエストURL
https://cloud.memsource.com/web/api2/v2/projects/applyTemplate/oNQiljwTGHpd2l1nnQRiu4
-
リクエスト本文
{ "name": "string", "sourceLang": "string", "targetLangs": [ "string" ], "workflowSteps": [ { "id": "string" } ], "dateDue":"2019-08-24T14:15:22Z", "note": "string", "client": { "id": "string" }, "businessUnit": { "id": "string" }, "domain": { "id": "string" }, "subDomain": { "id": "string" }, "costCenter": { "id": "string" } }{ "project": { "uid": "string" }, "name": "string", "importSettings": { "uid": "string" }, "useDynamicTitle": true, "dynamicTitle": "string" }
-
返答
Project UID (e.g. BmtNyVlz1skQd2aMVEipp9)
ジョブ作成
最後の呼び出しのプロジェクト UID を使用すると、ジョブ作成を使用して、新しく作成されたプロジェクトに新しいジョブを直接追加できます。
式 {projectUid}
は、取得したプロジェクト UID が挿入される要求 URL のプレースホルダーとして機能します。ジョブ作成 API コールでは、要求のヘッダーを phrase で必要なヘッダーと一致するように変更する必要があります(他のコールでは、Postman が自動的に適切なヘッダーを要求に追加します)。
すべてのインポート パラメータをカスタム Memsource ヘッダーに挿入する必要があります。
インポート オーダーを正しく処理するために、コンテンツ破棄ヘッダーに事前定義されたファイル形式のファイル名が含まれている必要があります。
原文ファイルをインポートするには、本文に移動し、
を選択 し、 オプションが表示されます。-
メソッド
POST
-
リクエストURL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs
-
(ヘッダー)コンテンツ-破棄
filename*=UTF-8''file.txt
-
(ヘッダー) Memsource
{"targetLangs":["de","fr"]}
-
(ヘッダー)コンテンツタイプ
application/octet-stream
-
返答
Job UID (e.g. dOYgeXzAdAbj4xFjuEVZP2)
AsyncRequest UID
ジョブ作成コールの非同期リクエストUIDを使用して、ジョブが正常に作成され、機能していることを確認します。
返されるジョブUIDはプロジェクトの各ワークフローステップで一意です。したがって、ジョブがワークフローフローを持つプロジェクトで作成された場合、応答は各ワークフローステップに一意のジョブ UID を返します。
再利用可能なインポート設定は、インポート設定作成コールで設定できます。作成ジョブ呼び出しで使用できるインポート設定 UID が応答で受信されます。
ジョブにプロバイダを割り当てるには(ジョブ作成コールで直接割り当てられた場合を除く)、編集ジョブコールを使用します。
呼び出しに挿入されるプロバイダの ID は、次の 2 つの方法で取得できます。
-
Phrase アプリケーションから ID を取得する手順は、次のとおりです。
-
ユーザー一覧 API コールを使用
この API コールはパラメータを必要とせず、アカウント内のすべてのユーザーのリストが返されます。レスポンスにはユーザー名と ID の両方が含まれます。
オプションのパラメータ userName をクリエに追加して、特定のユーザ名を持つユーザだけを一覧表示できます。
割り当て済ユーザーに通知する
ジョブ UID は、使用する電子メール テンプレートの ID を表すメールテンプレート パラメータとともに、割り当て済ユーザ通知コールのオプション パラメータとして使用できます。メールテンプレート一覧呼び出しを使用して取得できます。
-
リクエストURL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs/notifyAssigned
-
返答
empty (ステータス 204:コンテンツなし)
ここから翻訳者は、まるでPhrase UIを使用しているかのようにプロファイルで仕事を始めることができます。ジョブが終了すると、担当の PM に通知が届き、シナリオの次への部分を開始できます。コールバックはウェブフック経由で代行受信して、シナリオの次への部分を自動的に開始できますが、この例では扱いません。
ステップ3:翻訳済(完了)ファイルをダウンロード、プロジェクトを完了に設定
翻訳済みファイルのダウンロード
このシナリオは、翻訳者が割り当てを完了し(ジョブを「完了」と表記)、完了ファイルはいつでもダウンロードできるため、ジョブのステータスを「完了」にする必要はないという前提で機能します。
翻訳されたファイルをダウンロードするには、2 つの API コールが必要です。訳文ダウンロード(async) および非同期リクエスト呼び出しに基づく訳文ダウンロード
最初のステップは、 projectUid と jobUid パラメータを指定して訳文ダウンロード (非同期) を呼び出すことです。複数のワークフローステップがあるプロジェクトから完成ファイルをダウンロードする場合は、完成ファイルをダウンロードする特定のワークフローステップの jobUid (たとえば、リビジョンワークフローステップ) を必ず使用してください。
-
phrase アプリケーションから特定のワークフローステップのジョブ ID を取得する手順は、次のとおりです。
-
プロジェクトを開きます。
-
[ジョブ] テーブルで、完成したファイルをダウンロードするワークフローステップに切り替えます。
-
/ジョブの後のURLの一意の部分をブラウザからコピーします。
-
-
ジョブ一覧 API コールを使用
このエンドポイントは、指定されたプロジェクト内のジョブ一覧を返します。コールは、
workflowLevel
クエリ パラメータとともに使用します。このパラメータは、返されるジョブのワークフローステップを示すゼロ以外のパラメータです。指定しない場合、値はデフォルトで1
(=最初のワークフローステップ) に設定されます。たとえば、リビジョン ステップからジョブを取得する必要がある場合は、クエリー パラメータでそのステップの番号(2
)を指定します。
訳文ファイルのダウンロード(非同期)呼び出しは、翻訳を含む訳文ファイルの生成とダウンロードの非同期要求を開始します。応答内の訳文ファイルは直接提供されませんが、次の呼び出しに必要な asyncRequestId を提供します。
-
メソッド
PUT
-
リクエストURL
https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/targetFile
-
返答
AsyncRequest ID
応答の asyncRequestID で非同期リクエスト取得を使用して、リクエストが完了したことを確認します。非同期要求が完了したら、非同期要求呼び出しに基づく訳文ファイルのダウンロードを使用して訳文ファイルをダウンロードできます。asyncRequestId は 1 回だけ使用できます。ダウンロードが開始されると、asyncRequestId はその後使用できません。
-
メソッド
取得
-
リクエストURL
https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/downloadTargetFile/1291716982
-
返答
バイナリ形式の完了ファイル
プロジェクトを完了済に設定する
プロジェクト内のジョブの完了後にプロジェクトを終了するには、必須パラメータの projectUid と status を指定してプロジェクトステータス編集呼び出しを使用し、プロジェクト全体のステータスを Completed に変更します。この変更は手動によるものですが、プロジェクトステータス自動化機能を使用すると、ステータスは自動的に変更されます。ウェブフックを待機し、受け取ったコールバックに基づいて他のアクションを開始することもできます。
-
メソッド
POST
-
リクエストURL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/setStatus
-
リクエスト本文
{ "status":"COMPLETED"}
-
返答
empty (ステータス 204:コンテンツなし)