これは、サンプル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つの認証方法があります:
-
24 時間有効な認証トークンを生成します。トークンはすべての次の API に挿入する必要があります。トークンはユーザーを認証し、プロファイル内で他の機能を使用できるようにします。
-
アプリケーションの検証を許可します。検証されたアプリケーションは継続的に通信し、追加の認証は必要ありません。
このシナリオでは、認証 API コールが使用されます。生成されたトークンはすべての次の API コールに必要であり、例のパラメータにはリストされていません。
認証には、必要なパラメータを指定して Login API を使用してください。この場合、ユーザー名 と パスワード が必要です。
-
メソッド
POST
-
リクエスト URL
https://cloud.memsource.com/web/api2/v3/auth/login
-
リクエストボディ:
{ "userName":"username", "password":"password"} -
レスポンス
認証トークン。
複数の TMS 組織のメンバーは、複数のアカウントに対して同じユーザー名とパスワードを持っています。この場合、userUid をリクエストボディに追加して、ユーザーがログインしたい組織を指定する必要があります。指定されていない場合、ユーザーは指定されたユーザー名とパスワードに関連付けられたデフォルトアカウントにログインします。
ステップ 2:プロジェクトの作成、インポート、および割り当て
プロジェクトの作成
Projects API コールを使用して、必須パラメータ name、sourceLang、および targetLangs を指定してプロジェクトを作成します。
-
メソッド
POST
-
リクエスト URL
https://cloud.memsource.com/web/api2/v3/projects
-
リクエストボディ
{ "name":"My project", "sourceLang":"en", "targetLangs":[ "de","fr" ]} -
レスポンス
プロジェクト UID (例: 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": "文字列", "client": { "id": "文字列" }, "businessUnit": { "id": "文字列" }, "domain": { "id": "文字列" }, "subDomain": { "id": "文字列" }, "costCenter": { "id": "文字列" } }{ "project": { "uid": "文字列" }, "name": "string", "importSettings": { "uid": "string" }, "useDynamicTitle": true, "dynamicTitle": "string" } -
レスポンス
プロジェクト UID (例: BmtNyVlz1skQd2aMVEipp9)
ジョブの作成
前回のコールで取得したプロジェクト UID を使って、Create Job を利用し、新しいジョブを新しく作成したプロジェクトに直接追加できます。
式 {projectUid} は、取得したプロジェクト UID が挿入されるリクエスト URL のプレースホルダーとして機能します。Create Job API コールを使うときは、リクエストの Headers を Phrase で必要なものに一致するように変更しないといけない(他のコールでは、Postman が自動でリクエストに適切なヘッダーを追加してくれる)。
すべてのインポートパラメータは、カスタム Memsource ヘッダーに挿入する必要があります。
Content-Disposition ヘッダーには、インポートリクエストを正しく処理するために、あらかじめ定義された形式のファイル名を含めなきゃならない。
ソースファイルをインポートするには、本文に移動して、を選択すると、オプションが表示されるんだ。
-
メソッド
POST
-
リクエスト URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs
-
(ヘッダー) Content-Disposition
filename*=UTF-8''file.txt -
(ヘッダー) Memsource
{"targetLangs":["de","fr"]} -
(ヘッダー) Content-Type
application/octet-stream
-
レスポンス
ジョブUID(例:dOYgeXzAdAbj4xFjuEVZP2)
AsyncRequest UID
非同期リクエストを取得を使って、ジョブ作成呼び出しから取得した非同期リクエストUIDを利用し、ジョブが正しく作られて機能しているか確認するんだ。
返されたジョブUIDは、プロジェクト内の各ワークフローステップで一意になってるよ。だから、ワークフローがあるプロジェクトでジョブが作られると、応答は各ワークフローステップごとに一意のジョブUIDを返すんだ。
再利用可能なインポート設定は、インポート設定を作成呼び出しで設定できるんだ。作成ジョブ呼び出しで使えるインポート設定UIDが応答で返ってくるんだよ。
プロバイダをジョブに割り当てる場合(作成ジョブ呼び出しで直接割り当て済みじゃないなら)、ジョブを編集呼び出しを使うんだ。
呼び出しに挿入されたプロバイダのIDは、2つの方法で取得できるよ:
-
PhraseアプリケーションからIDを取得するには、次の手順に従うんだ:
-
使うんだ ユーザー一覧 APIコール。
このAPIコールは特定のパラメータを必要とせず、アカウント内のすべてのユーザー一覧が返ってくるんだ。レスポンスにはユーザー名とIDの両方が含まれてるよ。
オプションのパラメータ ユーザー名 をクエリに追加すると、特定のユーザー名を持つユーザーだけを一覧表示できるんだ。
割り当てられたユーザーに通知する
ジョブUIDは、割り当てられたユーザーに通知するコールのオプションパラメータとして使え、使用するメールテンプレートのIDを示すemailTemplateパラメータと一緒に使うんだ。これは、メールテンプレート一覧コールを使うことで取得できるんだ。
-
リクエスト URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/jobs/notifyAssigned
-
レスポンス
空欄 (ステータス 204:コンテンツなし)
ここは、翻訳者が自分のプロファイルで仕事を始める場所だよ。まるでPhrase UIを使っているみたいにね。ジョブが完了すると、担当のPMが通知を受け取り、シナリオの次の部分が始まるんだ。コールバックは、ウェブフックを使ってインターセプトし、シナリオの次の部分を自動で始めることができるんだけど、この例では扱わないよ。
ステップ3:翻訳済み(完了)ファイルをダウンロードして、プロジェクトを完了に設定するんだ。
翻訳されたファイルをダウンロードする
このシナリオは、翻訳者が自分の仕事を終えて(ジョブを完了とマークする)動く前提だけど、完了したファイルはいつでもダウンロードできるし、ジョブが完了ステータスになっている必要はないんだ。
翻訳済みファイルをダウンロードするには、2つのAPIコールが必要なんだ:訳文ファイルをダウンロード(非同期) と 非同期リクエストに基づいて訳文ファイルをダウンロード のAPIコールだよ。
最初のステップは、訳文ファイルをダウンロード(非同期)をprojectUidとjobUidパラメータ付きで呼び出すんだ。複数のワークフローステップがあるプロジェクトから完了ファイルをダウンロードするなら、ダウンロードしたい完了ファイルがある特定のワークフローステップのjobUidを使うことを確認してね。例えば、リビジョンワークフローステップの場合だよ。
-
Phraseアプリケーションから特定のワークフローステップのjobUIDを取得するには、次の手順に従うんだ:
-
プロジェクトを開いてみて。
-
Jobsテーブルで、ダウンロードしたい完了ファイルがあるワークフローステップに切り替えるんだ。
-
ブラウザで、/jobの後のユニークなURL部分をコピーするんだ。
-
-
使うんだ ジョブ一覧 APIコール。
このエンドポイントは、指定されたプロジェクト内のジョブ一覧を返すよ。
workflowLevelクエリパラメータを使ってね。このパラメータは、返されたジョブが属するワークフローステップを示す、非ゼロベースのパラメータだよ。指定しない場合、その値はデフォルトで1(=最初のワークフローステップ)に設定されるんだ。例えば、リビジョンステップからジョブを取得したいなら、そのステップの番号をクエリパラメータに指定するんだ。つまり2だよ。
Download target file(非同期)コールは、訳文を含むターゲットファイルを生成してダウンロードする非同期リクエストを開始するんだ。レスポンス内で訳文ファイルを直接提供するのではなく、次のコールに必要なasyncRequestIdを提供します。
-
メソッド
PUT
-
リクエスト URL
https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/targetFile
-
レスポンス
AsyncRequest ID
レスポンスからasyncRequestIDを使用し、非同期リクエストを取得コールでリクエストが完了しているか確認します。非同期リクエストが完了したら、非同期リクエストに基づいて訳文ファイルをダウンロードコールを使用して訳文ファイルをダウンロードできます。asyncRequestIdは一度だけ使用できます。ダウンロードが開始されると、asyncRequestIdは今後使用できなくなります。
-
メソッド
GET
-
リクエスト URL
https://cloud.memsource.com/web/api2/v2/projects/KmtNyVlz1skQd2aMVEipp7/jobs/dOYgeXzAdAbj4xFjuEVZP2/downloadTargetFile/1291716982
-
レスポンス
完了したファイル自体のバイナリ応答
プロジェクトを完了に設定
プロジェクトを完了するために、プロジェクト内のジョブが完了したら、必須パラメータprojectUidとstatusを使用してプロジェクトのステータスを編集コールを行い、プロジェクト全体のステータスを完了に変更します。この変更は手動ですが、プロジェクト ステータス 自動化<8>}が使用されると、ステータスは自動的に変更されます。ウェブフックを待機し、受信したコールバックに基づいて他のアクションを開始することも可能です。
-
メソッド
POST
-
リクエスト URL
https://cloud.memsource.com/web/api2/v1/projects/KmtNyVlz1skQd2aMVEipp7/setStatus
-
リクエストボディ
{ "status":"COMPLETED"} -
レスポンス
空欄 (ステータス204:コンテンツなし)