MDM One MH API


概要

はじめに

MDM One MH APIとは、MDM One MH の特定の機能をさまざまな言語からWeb経由で呼び出すためのAPIです。
MDM One MH APIを使用するためには、MDM One MH のAPI設定が有効である必要があります。また、MDM One MH で発行したAPIキーが必要です。

MDM One MH のAPI設定を有効にする

  1. マスターポータルでログインします。
  2. 「設定」タブの「サーバー設定」を表示します。
  3. 「API設定」を選択します。
  4. 「API設定」項目で「有効にする」を選択し、「更新」をクリックします。

初めてAPI設定を有効にした場合はAPIキーが発行され、下部「APIキー」項目に表示されます。

APIキーを入手する

初めてAPIキーを発行する場合は、上記「MDM One MH のAPI設定を有効にする」の手順で発行されます。APIキーを再発行する場合は、上記手順を参考にしてマスターポータルで「API設定」画面を表示し、下部にある「APIキー」項目のチェックボックスをクリックします。「APIキー」項目に新しいAPIキーが表示されます。

APIキーを使用する

APIを使用する時に、パラメーターapikey=APIキーを設定してください。

リクエスト

リクエストのURLは以下のような形式です。

https://[ホスト名]:[ポート番号]/mdmapi/[API指定]/[レスポンスタイプ]
ホスト名 マスターポータルのホスト名を指定します。
ポート番号 マスターポータルのポート番号を指定します。インストール時のデフォルト値は26443です。インストール時に変更した場合は、変更したポート番号を指定してください。
API指定 MDM One MH APIのパスを指定します。APIリストを参照してください。
レスポンスタイプ xml,json,htmのいずれかを指定します。
マスターポータルが返すレスポンスは、XML(text/xml), JSON(text/javascript) ,HTML(text/html)の3つのコンテントタイプがあります。省略可能で、省略した場合はXMLになります。

それぞれのAPIサービスを使用するにはHTTPメソッドを指定します。

レスポンス

リクエストで指定されたレスポンスタイプ(XML,JSON,HTML)のいずれかの形式で返ります。
例えば、スケジュール一覧取得(list)のリクエストに対するレスポンスはそれぞれ以下のようになります。(サーバーアドレスはhostname、ポート番号は26443とします)

レスポンスがXML

<リクエストURL>
https://hostname:26443/mdmapi/schedules/xml

<?xml version="1.0" encoding="UTF-8"?>
<Schedules>
	<Schedule>
		<Id>sc_00003</Id>
		<Name>スケジュール1</Name>
		<Status>Stop</Status>
		<Description>説明の文章です</Description>
		<NextDate>2008-03-12T00:00:00.000 JST</NextDate>
	</Schedule>
	<Schedule>
		<Id>sc_00004</Id>
		<Name>スケジュール2</Name>
		<Status>Running</Status>
		<Description>2番目の説明です</Description>
		<NextDate>2008-03-12T00:00:00.000 JST</NextDate>
	</Schedule>
</Schedules>

レスポンスがJSON

<リクエストURL>
https://hostname:26443/mdmapi/schedules/json
{"Schedules":
   {"Schedule":
      [
         {"Name":"スケジュール1","Status":"Stop","Description":"説明の文章です","NextDate":"2008-03-12T00:00:00.000 JST","Id":"sc_00003"},
         {"Name":"スケジュール2","Status":"Running","Description":"2番目の説明です","NextDate":"2008-03-12T00:00:00.000 JST","Id":"sc_00004"}
      ]
   }
}

レスポンスがHTML

<リクエストURL>
https://hostname:26443/mdmapi/schedules/htm
<?xml version="1.0" encoding="UTF-8"?>
<table>
	<tr>
		<td>sc_00003</td>
		<td>スケジュール1</td>
		<td>Stop</td>
		<td>2008-03-12T00:00:00.000 JST</td>
		<td>説明の文章です</td>
	</tr>
	<tr>
		<td>sc_00004</td>
		<td>スケジュール2</td>
		<td>Running</td>
		<td>2008-03-12T00:00:00.000 JST</td>
		<td>2番目の説明です</td>
	</tr>
</table>

凡例

APIリストの凡例は以下になります。
URL APIのURL
説明 APIの説明
リクエスト リクエストで設定できるパラメータ
レスポンス レスポンスノードの説明

APIリスト

スケジュール一覧取得

URLhttps://[hostname]:[port]/mdmapi/schedules
説明スケジュール一覧のリストを返します

リクエストget:メソッド
パラメータ説明
---指定できるパラメータはありません
レスポンス
ノード説明
Schedulesルートエレメントになります
Scheduleスケジュール情報セットエレメント
IdスケジュールID
Nameスケジュール名
StatusRunning:開始状態、Stop:停止状態
NextDate次回実行予定時間、Stopのときは属性に isnull="true" が設定され値は設定されません
Descriptionスケジュールの説明

<リクエスト>
GET /mdmapi/schedules/xml HTTP/1.1
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: libwww-perl/5.805
Host: localhost:26443
Connection: Keep-Alive
X-MDMONEMHWEBAPI: 009e3ad5-cfe1-4561-b509-1adf8f3460ad-0b5caef973e5c8bd14175d4399e0eca7

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 445
Server: ASTERIA HTTP Daemon/1.01
Date: Tue, 11 Mar 2008 07:35:25 GMT
Connection: close
Set-Cookie: SESSIONID=81FB5D56776C4C15A8B0898201EB8819;Path=/

<?xml version="1.0" encoding="UTF-8"?>
<Schedules>
	<Schedule>
		<Id>sc_00003</Id>
		<Name>スケジュール1</Name>
		<Status>Stop</Status>
		<Description>説明の文章です</Description>
		<NextDate>2008-03-12T00:00:00.000 JST</NextDate>
	</Schedule>
	<Schedule>
		<Id>sc_00004</Id>
		<Name>スケジュール2</Name>
		<Status>Running</Status>
		<Description>2番目の説明です</Description>
		<NextDate>2008-03-12T00:00:00.000 JST</NextDate>
	</Schedule>
</Schedules>

スケジュール実行

URLhttps://[hostname]:[port]/mdmapi/execschedule
説明スケジュールを実行します。idで実行するスケジュールを指定します

リクエストpost:メソッド
パラメータ説明
id実行するスケジュールのID
レスポンス
ノード説明
ExecuteResponseルートエレメントになります
Status実行結果のステータスが設定されます。
OK実行に成功しました
NG実行に失敗しました
Running実行中のため実行できませんでした
RequestId成功した場合、リクエストIDが入ります
Messageメッセージが入ります

<リクエスト>
POST /mdmapi/execschedule/xml HTTP/1.1
Accept: */*
Referer: https://localhost:26443/test.html
Accept-Language: ja
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: libwww-perl/5.805
Host: localhost:26443
Content-Length: 88
Connection: Keep-Alive
Cache-Control: no-cache
X-MDMONEMHWEBAPI: 009e3ad5-cfe1-4561-b509-1adf8f3460ad-0b5caef973e5c8bd14175d4399e0eca7

id=sc_00004

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 118
Server: ASTERIA HTTP Daemon/1.01
Date: Tue, 11 Mar 2008 07:24:39 GMT
Connection: close
Set-Cookie: SESSIONID=8678376B3D2F4F0F922ACB13D147AFA9;Path=/

<?xml version="1.0" encoding="UTF-8"?>
<ExecuteResponse>
<Status>OK</Status>
<Message>Success</Message>
</ExecuteResponse>

スケジュールモニター一覧

URLhttps://[hostname]:[port]/mdmapi/monitorlist
説明スケジュール単位で最新4つリクエストの一覧を表示します

リクエストget:メソッド
パラメータ説明
---指定できるパラメータはありません
レスポンス
ノード説明
Monitorルートエレメントになります
Scheduleスケジュール
Idルートエレメントになります
Nameルートエレメントになります
Requestsルートエレメントになります
Requestルートエレメントになります

<リクエスト>
GET /mdmapi/monitorlist/xml HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 192.168.5.165:26443
User-Agent: libwww-perl/5.805
Content-Type: application/x-www-form-urlencoded
X-MDMONEMHWEBAPI: 009e3ad5-cfe1-4561-b509-1adf8f3460ad-0b5caef973e5c8bd14175d4399e0eca7

<レスポンス>
Content-Type: text/xml; charset=UTF-8
Content-Length: 1118
Server: ASTERIA HTTP Daemon/1.01
Date: Tue, 11 Mar 2008 07:59:40 GMT
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<Monitor>
    <Schedule>
        <Id>sc_00003</Id>
        <Name>スケジュール1</Name>
        <Requests>
            <Request>
                <RequestId></RequestId>
                <Status>WAITING</Status>
                <StartTime isnull="true" />
                <EndTime isnull="true" />
                <ExecTime>0</ExecTime>
            </Request>
            <Request>
                <RequestId>2008-03-10-000010</RequestId>
                <Status>CANCEL</Status>
                <StartTime>2008-03-10T22:16:59.658 JST</StartTime>
                <EndTime isnull="true" />
                <ExecTime>25896</ExecTime>
            </Request>
            <Request>
                <RequestId>2008-03-07-000007</RequestId>
                <Status>CANCEL</Status>
                <StartTime>2008-03-07T17:35:59.382 JST</StartTime>
                <EndTime isnull="true" />
                <ExecTime>422</ExecTime>
            </Request>
            <Request>
                <RequestId>2008-03-05-000006</RequestId>
                <Status>CANCEL</Status>
                <StartTime>2008-03-05T18:53:32.936 JST</StartTime>
                <EndTime isnull="true" /><ExecTime>31</ExecTime>
            </Request>
        </Requests>
    </Schedule>
    <Schedule>
        <Id>sc_00004</Id>
        <Name>スケジュール2</Name>
        <Requests>
            <Request>
                <RequestId>2008-03-11-000011</RequestId>
                <Status>RETRYWAITING</Status>
                <StartTime>2008-03-11T16:24:39.438 JST</StartTime>
                <EndTime isnull="true" />
                <ExecTime>343</ExecTime>
            </Request>
        </Requests>
    </Schedule>
</Monitor>

スケジュールモニター履歴一覧

URLhttps://[hostname]:[port]/mdmapi/monitorhistory
説明指定したスケジュールのリクエスト履歴一覧を表示されます

リクエストget:メソッド
パラメータ説明
scheduleid表示するスケジュールのID
max表示する最大件数 1 - 100
pageページ番号
レスポンス
ノード説明
Monitorルートエレメントになります
IdスケジュールID
Nameスケジュール名
Requestsリクエスト一覧
Requestリクエスト
Idリクエスト
Statusリクエストのステータス
WAITING次回実行時刻まで待機中
PROCESSING実行中
RETRYWAITINGリトライ待ち
SUCCESS正常終了
FAILURE異常終了
CANCEL強制終了
StartTime開始時刻
EndTime終了時刻
ExecTime実行時間 ミリsec

<リクエスト>
GET /mdmapi/monitorhistory/xml?scheduleid=sc_00003&max=3 HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 192.168.5.165:26443
User-Agent: libwww-perl/5.805
Content-Type: application/x-www-form-urlencoded
X-MDMONEMHWEBAPI: 009e3ad5-cfe1-4561-b509-1adf8f3460ad-0b5caef973e5c8bd14175d4399e0eca7

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 606
Server: ASTERIA HTTP Daemon/1.01
Date: Tue, 11 Mar 2008 18:07:22 GMT
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<Monitor>
    <Id>sc_00003</Id>
    <Name>スケジュール1</Name>
    <Requests>
        <Request>
            <Id></Id>
            <Status>WAITING</Status>
            <StartTime isnull="true" />
            <EndTime isnull="true" />
            <ExecTime>0</ExecTime>
        </Request>
        <Request>
            <Id>2008-03-11-000029</Id>
            <Status>CANCEL</Status>
            <StartTime>2008-03-11T19:25:17.258 JST</StartTime>
            <EndTime isnull="true" />
            <ExecTime>10031</ExecTime>
        </Request>
        <Request>
            <Id>2008-03-11-000028</Id>
            <Status>CANCEL</Status>
            <StartTime>2008-03-11T19:25:00.597 JST</StartTime>
            <EndTime isnull="true" />
            <ExecTime>7051</ExecTime>
        </Request>
    </Requests>
    <Next>1</Next>
</Monitor>

スケジュールリクエスト詳細

URLhttps://[hostname]:[port]/mdmapi/monitordetail
説明スケジュールリクエスト詳細を表示します

リクエストget:メソッド
パラメータ説明
scheduleidスケジュールIDを指定します
requestidリクエストIDを指定します
eachjobtrue:ジョブ履歴をジョブ毎に表示します , false:ジョブ履歴をまとめて表示します
レスポンス
ノード説明
Monitorルートエレメントになります
IdスケジュールID
Nameスケジュール名
Requestsリクエスト一覧
Requestリクエスト
Idリクエスト
Statusリクエストのステータス
WAITING次回実行時刻まで待機中
PROCESSING実行中
RETRYWAITINGリトライ待ち
SUCCESS正常終了
FAILURE異常終了
CANCEL強制終了
StartTime開始時刻
EndTime終了時刻
ExecTime実行時間 ミリsec
JobStatus現在のジョブのステータス
Jobジョブ情報
IdジョブID
Nameジョブ名
Statusジョブステータス
SubStatusサブジョブステータス
MasterProfileIdマスタープロファイルID
MasterProfileNameマスタープロファイル名
StartTime開始時刻
EndTime終了時刻
ExecTime実行時間 ミリsec
InsertInsert件数
UpdateUpdate件数
DeleteDelete件数
JobHistory現在のジョブのステータス
Jobジョブ情報
Historyジョブ履歴
IdジョブID
Statusジョブステータス
SubStatusサブジョブステータス
LastModified更新日付

<リクエスト>
GET /mdmapi/monitordetail/xml?scheduleid=sc_00003&requestid=2008-03-11-000029 HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 192.168.5.165:26443
User-Agent: libwww-perl/5.805
Content-Type: application/x-www-form-urlencoded
X-MDMONEMHWEBAPI: 009e3ad5-cfe1-4561-b509-1adf8f3460ad-0b5caef973e5c8bd14175d4399e0eca7

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 3507
Server: ASTERIA HTTP Daemon/1.01
Date: Tue, 11 Mar 2008 18:30:34 GMT
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<Monitor>
    <Id>sc_00003</Id>
    <Name>スケジュール1</Name>
    <RequestId>2008-03-11-000029</RequestId>
    <Status>CANCEL</Status>
    <StartTime>2008-03-11T19:25:17.258 JST</StartTime>
    <EndTime>1970-01-01T09:00:00.000 JST</EndTime>
    <ExecTime>10031</ExecTime>
    <JobStatus>
        <Job>
            <Id>mp_00002_center_00001</Id>
            <Name>ソースからセンターへのコピー</Name>
            <Status>Cancel</Status><SubStatus>None</SubStatus>
            <MasterProfileId>mp_00002</MasterProfileId><MasterProfileName>新規マスタープロファイル1</MasterProfileName>
            <StartTime>2008-03-11T19:25:17.258 JST</StartTime><EndTime>2008-03-11T19:25:27.289 JST</EndTime><ExecTime>0</ExecTime>
            <Insert>0</Insert><Update>0</Update><Delete>0</Delete>
		</Job>
        <Job>
            <Id>mp_00002_target_00001</Id>
            <Name>センターからターゲットへのコピー</Name>
            <Status>Cancel</Status><SubStatus>None</SubStatus>
            <MasterProfileId>mp_00002</MasterProfileId><MasterProfileName>新規マスタープロファイル1</MasterProfileName>
            <StartTime isnull="true" /><EndTime isnull="true" /><ExecTime>0</ExecTime>
            <Insert>0</Insert><Update>0</Update><Delete>0</Delete>
        </Job>
    </JobStatus>
    <JobHistory>
        <Job>
            <History>
                <Id>mp_00002_target_00001</Id>
                <Status>Cancel</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:29.847 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Cancel</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:29.847 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Error</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:27.289 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Processing</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:27.257 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Starting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:27.242 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>RetryStarting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:27.242 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>RetryWaiting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:25.105 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Processing</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:25.089 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Starting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:25.073 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>RetryStarting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:25.073 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>RetryWaiting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:17.273 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Processing</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:17.258 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Starting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:17.258 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_target_00001</Id>
                <Status>Waiting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:17.258 JST</LastModified>
            </History>
            <History>
                <Id>mp_00002_center_00001</Id>
                <Status>Waiting</Status><SubStatus>None</SubStatus>
                <LastModified>2008-03-11T19:25:17.258 JST</LastModified>
            </History>
        </Job>
    </JobHistory>
</Monitor>

※ eachjob=true の場合
<JobHistory>
    <Job Id="mp_00002_center_00001">
        <History><Id>mp_00002_center_00001</Id> ... <LastModified>2008-03-11T19:25:29.847 JST</LastModified></History>
        <History><Id>mp_00002_center_00001</Id> ... <LastModified>2008-03-11T19:25:27.289 JST</LastModified></History>

                   :
                   :

        <History><Id>mp_00002_center_00001</Id> ... <LastModified>2008-03-11T19:25:17.258 JST</LastModified></History>
    </Job>
    <Job Id="mp_00002_target_00001">
        <History><Id>mp_00002_target_00001</Id> ... <LastModified>2008-03-11T19:25:29.847 JST</LastModified></History>
        <History><Id>mp_00002_target_00001</Id> ... <LastModified>2008-03-11T19:25:17.258 JST</LastModified></History>
    </Job>
</JobHistory>

[ TOP ]