Memsource API

From Memsource

Jump to: navigation, search

Contents

概要

Memsource Cloudは様々なAPIを公開しており、こちらをご利用頂くことで例えば下記のことが可能になります:

エディション毎のAPIの利用制限

APIはすべての有料エディションで利用可能ですが、下記の通り制限がございます:

エディション APIコール数上限/日
アルティメット、BIZアルティメット 無制限
チーム、BIZチーム 2000
チームスタート、BIZスタート 1000
フリーランサー 500
パーソナル 0

はじめに

APIを利用した開発のためのサンドボックスとして、無料の Memsourceデベロッパー版 が用意されています。 ユーザーはGoogle ChromeのPostmanというアプリケーションを使用してMemsourceのAPIの仕組みを学習、テストすることができます。

MemsourceのAPIを理解し、使用するためにはMemsourceの設定手順やワークフローを学ぶことが不可欠です。Getting Started with Memsource Cloud(英文マニュアル)もしくは My 1st Project(動画)などで、 Memsourceの翻訳ワークフローを確認しましょう。

基本的なワークフローは次のとおりです。

  1. 必要に応じTM、TB、および機械翻訳エンジンを作成します。
  2. 作成したTM / TB /機械翻訳エンジンを設定し、プロジェクトを作成します。
  3. プロジェクトに翻訳用ファイルをアップロードしてジョブを作成します。
  4. ジョブが作成されたら、解析、TMもしくは機械翻訳エンジンを用いた一括翻訳、翻訳者に作業をアサイン、などが可能になります。

Memsource APIを使用するためには、一般的なAPIの言語を理解している必要があります。このページではMemsource APIの要綱を説明いたします。

テクノロジー

Memsource APIは全てMemsource Cloudのサーバと外部ソフトウェアやエディタなどのクライアントとの通信を前提としています。クライアントとサーバ間の通信はHTTPSプロトコルで行われ、GETまたはPOSTメソッドのいずれかを使用します。

APIのパラメータはHTTPのボディにおいてmultipart/form-dataもしくはapplication/x-www-form-urlencodedでエンコードされます。これはパラメータを通信する際のセキュリティを強化するためです。代替手段としてパラメータをクエリ文字列として送信する(ファイルのアップロードは不可)こともできますが、推奨されません。

サーバからのレスポンスはJSON形式でクライアントに送信されます。HTTPSとJSONはともにシンプルでありながら堅牢で扱いやすいプロトコルであり、C言語で書かれたコマンドラインプログラム、Javaで書かれたエンタープライズシステム、Python、Ruby、Groovyなどを用いた最近のウェブサイトなど、さまざまな環境で幅広くサポートされています。

APIの例

目的別のAPIのリファレンスをページ下部に用意していますが、ここではリファレンスの読み方の参考として一例をご紹介します。

action: project/create
token                       string
name                        string                             
sourceLang                  lang
targetLang                  list(lang)
client                      string                         O
domain                      string                         O
due                         datetime                       O
machineTranslationType      enum(MachineTranslationType)   O(Google)
response: JSON
{
"id": 238                 // id of the project
}

HTTPリクエストを送信する際はベースURLであるhttps://cloud.memsource.com/web/api/VERSION_NUMBERVERSION_NUMBERv2v3などを代入し、パラメータを付加します。下部の表では、アクションのためのパラメータのリストについて説明します。最初の列がパラメータの名前、第2列がデータ・タイプ、第3列はパラメータを表す追加のフラグです。


以下はURLとパラメータの例です。

https://cloud.memsource.com/web/api/v2/project/create

token=30-d987eb187ecf4282049dd7e830c14f57&name=My%20Project&sourceLang=en&targetLang=de&targetLang=ru&client=My%20Client

全てのパラメータが正しく、コールのためのユーザー認証が適切に行われている場合には、HTTPステータスコードの200に加え、通常はいくつかの追加データが返却されます。この例ではJSON形式ですが、APIコールによってはダウンロードしたファイルのバイナリデータの時もあります。

エラー処理

APIリクエストの処理に問題があると、JSON形式に従って次のコードが返却されます。問題を示すエラーコードは必ず表示されますが、内容の説明は表示されない場合もあります。

{
"errorCode": "InvalidArguments",
"errorDescription": "Required argument \"password\" of type \"string\" is missing."
}

エラーの内容はレスポンスのHTTPステータスコードから判別することができます。エラーが発生した場合、ステータスコードが200番台になることはありません。パラメータの内容が正しくないと400番台が返却されます。例えば認証に問題がある際は401や403が表示されます。詳細についてはエラーコードをご参照ください。

Memsourceのサポートに問題を報告する

Memsourceのサポートに問題を報告する際は、以下の内容をお知らせください。

認証

ほとんどのAPIコールで、Memsourceユーザーとしての認証が必要です。APIを利用する際に特別なユーザーアカウントを使用することはなく、既存のユーザーアカウントのユーザー名とパスワードを使用してコールすることになります。ユーザー認証を必要とするAPIをコールする前に、auth/login APIをコールして、認証トークンを取得します。このトークンの有効期限は24時間で、制限時間内なら他のコールのためにも使用することができます(コール毎に認証トークンを取得しないようにしましょう)。ユーザー認証の詳細についてはリファレンスをご参照ください。

OAuth 2.0

OAuth 2.0の設定および管理はMemsource Cloudの[セットアップ]>[インテグレーション]から行います。

Auth URL:

/web/oauth/authorize

Token URL:

/web/oauth/token

APIリファレンス

同期API

非同期API

任意の同期APIに対応する非同期APIがある際は常にそちらの使用が推奨されます。これは、大量のファイルや容量の大きいファイルを処理する際に同期APIをコールするとレスポンスがtimeout expiredになる可能性があるためです。同期APIは小さなファイルの処理やMemsourceと外部ソフトウェアの小規模な統合のためにのみ使用しましょう。

ポーリング

非同期APIをコールすると、識別子要求を含むレスポンスを即時受信します。ユーザーはgetAsyncRequestをコールし、asyncResponseのフィールドでリクエストのステータスを確認する際に上記の識別子を使用します。この方法だと、null値以外のasyncResponseを受け取るまでに多数のgetAsyncRequestをコールしなくてはいけない場合があります。

コールバック

非同期APIにおけるポーリングの欠点を取り除くために、全ての非同期APIでコールバックがサポートされています。ユーザは非同期APIをコールする際に、非同期APIの処理が完了した際にサーバからの要求で必要になるcallbackUrlパラメータのURLを指定します。

コールバックはHTTPのPOSTメソッドのコールを通じ要求され、データはJSON形式のボディに含まれます。JSON形式で送信されるデータには必ず下記が含まれます。

{
"asyncRequest": {
...
}
"analyse": {
...
}
}

コールバックのURLにアクセスできない場合、サーバからの要求が2分、4分、8分、16分、30分後というように合計10回まで繰り返されます。

サーバ側が成功したと判断するためにはコールバックのURLが200番台のHTTPステータスコードで応答する必要があります。

非同期API

データタイプ

非推奨のAPI

以前まで使用していたcloud1.memsource.comも現在は非推奨ですのでご注意ください。代わりにcloud.memsource.comを使用しましょう。

ウェブフック

ウェブフックは、Memsource Cloudが特定のイベント(例えばジョブのステータスの変更など)が発生したことを外部のアプリケーションに通知する方法で、設定はMemsource Cloudの[セットアップ]>[インテグレーション]から行います。HTTP POSTリクエストを処理する任意のURLを指定しましょう。

リクエストの処理方法は、非同期APIのコールバックと同様で、JSON形式のデータがPOSTリクエストのボディに含まれます。

{
event: "JOB_STATUS_CHANGED",
jobParts: [
...
[
}


イベント

{
"jobParts":[
{
"id":8583,
"internalId":"3",
"task":"VtOZIaPwEhGnv6Kl_dc1",
"fileName":"en.txt",
"targetLang":"cs",
"workflowLevel":1,
"status":"DECLINED_BY_LINGUIST",
"wordsCount":199,
"beginIndex":0,
"endIndex":9,
"isParentJobSplit":false,
"dateDue":null,
"dateCreated":"2016-03-10T16:22:54Z",
"project":{
"id":289
}
}
[,
"event":"JOB_STATUS_CHANGED"
}
{
"jobParts":[
{
"id":8583,
"internalId":"3",
"task":"VtOZIaPwEhGnv6Kl_dc1",
"fileName":"en.txt",
"targetLang":"cs",
"workflowLevel":1,
"status":"DECLINED_BY_LINGUIST",
"wordsCount":199,
"beginIndex":0,
"endIndex":9,
"isParentJobSplit":false,
"dateDue":null,
"dateCreated":"2016-03-10T16:22:54Z",
"project":{
"id":289
}
}
[,
"event":"JOB_CREATED"
}
Personal tools
Namespaces
Variants
Actions
In other languages
Getting Started
Memsource Cloud
Memsource Editor
Web Editor
Toolbox