LMSについて
LMSはバルクデータのやり取りやAPIコールのバッチ処理を行うためのサービスで、次のAPIを組み合わせて処理要求を行います。
名称
|
説明
|
Merchant Data
|
ジョブ要求データのエンコード定義
|
Bulk Data Exchange
|
ジョブ制御をするためのAPI
|
File Transfer
|
バルクデータのアップロードとダウンロードをするためのAPI
|
APIコールのバッチ処理
APIコールをバッチ実行するためには、Merchant Data APIの定義に従い作成した処理要求データをアップロードします。
-
Merchant Data APIの定義にしたがい、XMLの要求データを作成する。
-
Bulk Data Exchange APIのcreateUploadJobで、ファイルアップロード先のジョブを作成する。
-
File Transfer APIのuploadFIleを実行して、1で作成したデータをアップロードする。
-
Bulk Data Exchange APIのgetJobStatusを実行し、1のジョブが完了していることを確認する。
-
File Transfer APIのdownloadFileを実行して、ファイルをダウンロードする。
定型レポートのダウンロード
-
オンデマンドでの作成
-
Bulk Data Exchange APIのstartDownloadJobを実行して、レポート作成ジョブを開始する。
-
Bulk Data Exchange APIのgetJobStatusを実行し、1のジョブが完了していることを確認する。
-
File Transfer APIのdownloadFileを実行して、ファイルをダウンロードする。
-
定期実行での作成
-
Bulk Data Exchange APIのcreateRecurringJobで、レポートを定期的に作成するジョブを作成する。
-
Bulk Data Exchange APIのactivateRecurringJobでジョブをアクティブにする。
-
Bulk Data Exchange APIのgetRecurringJobExecutionStatusを実行し、ジョブが完了していることを確認する。
-
File Transfer APIのdownloadFileを実行して、ファイルをダウンロードする。
LMSの機能比較
LMSには、実行回数に制限があります。詳しくはLMS user’s guideをご覧ください。
-
バッチ実行できるTrading API コールの種類
LMSでバッチ実行できるAPIコールは限定されています。詳しくはこちらをご覧ください。
File Transfer APIのインターフェースについて
アップロード
ファイルのアップロードは、つぎのようにエンコードしてPOSTします。 ここで、${UUID}, ${UUID_ATTACH}は、個別に生成したUUID( Universally Unique Identifier )の意味です。
【Content-Type】
multipart/related; boundary=MIMEBoundaryurn_uuid_{$UUID};type="application/xop+xml";start="<0.urn:uuid:%s>";start-info="text/xml"
【Body】
--MIMEBoundaryurn_uuid_{$UUID}\r\n
Content-Type: application/xop+xml; charset=UTF-8; type=\"text/xml; charset=UTF-8\"\r\n
Content-Transfer-Encoding: binary\r\n
Content-ID: <0.urn:uuid:{$UUID_REQ}>\r\n\r\n
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<uploadFileRequest xmlns:sct="http://www.ebay.com/soaframework/common/types" xmlns="http://www.ebay.com/marketplace/services">'.
<taskReferenceId>11111</taskReferenceId>".
<fileReferenceId>2222</fileReferenceId>".
<fileFormat>gzip</fileFormat>'
<fileAttachment><Size>1024</Size><Data><xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:urn:uuid:${UUID_ATTACH}"/></Data></fileAttachment>
</uploadFileRequest>\r\n
--$boundary{$UUID}\r\n
Content-Type: application/octet-stream\r\n
Content-Transfer-Encoding: binary\r\n
Content-ID: <urn:uuid:{$UUID_ATTACH}>\r\n\r\n
[gzip のバイナリデータ]\r\n
--MIMEBoundaryurn_uuid_{$UUID}--\r\n
ダウンロード
ダウンロードのレスポンスは次のようになっているので、タグからUUIDを抜き出し、それをもとにバイナリデータの位置を特定してバイナリデータを抽出します。このバイナリデータはZIPの書庫形式なので、解凍してxmlファイルを取得することができます。
<?xml ...
<downloadFileResponse>
<fileAttachment>
<Size>0</Size>
<Data>
<xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:urn:uuid:{$UUID}"/>
</Data>
</fileAttachment>
...
</downloadFileResponse>
...
----MIMEBoundaryurn_uuid_....
Content-ID: <urn:uuid:{$UUID}>CRLF
CRLF
<バイナリデータ>CRLF
----MIMEBoundaryurn_uuid_....
サンプルコード
File Transfer APIを理解するためのサンプルについては、LMS PHPサンプルをご覧ください。