パイプラインAPI


概要

はじめに

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

パイプラインサービスのAPI設定を有効にする

  1. パイプラインサービスにパイプラインコーディネーターでログインします。
  2. 「Settings」タブの「環境設定」を表示します。
  3. 「環境設定」画面で「API設定」タブを表示します。
  4. 「API設定」項目で「有効にする」を選択し、「更新」ボタンをクリックします。

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

APIキーを入手する

初めてAPIキーを発行する場合は、上記「パイプラインサービスのAPI設定を有効にする」の手順で発行されます。APIキーを再発行する場合は、上記手順を参考にしてパイプラインコーディネーターで「API設定」画面を表示し、下部にある「APIキー」項目の「更新」ボタンをクリックします。「APIキー」項目に新しいAPIキーが表示されます。

リクエスト

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

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

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

レスポンス

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

レスポンスがXML

<リクエストURL>
http://hostname:25080/pipelineapi/list/xml
<?xml version="1.0" encoding="UTF-8"?>
<PipelineList>
  <PipeLine>
    <Id>pl_00001</Id><Name>パイプラインーサンプル</Name><Runmode>run</Runmode>
    <Createdate>2007-08-31T19:58:36.752 JST</Createdate>
    <Updatedate>2007-09-14T07:37:15.692 JST</Updatedate>
    <Description>Please write description</Description>
  </PipeLine>
  <PipeLine>
    <Id>pl_00002</Id><Name>パイプライン-テスト</Name><Runmode>stop</Runmode>
    <Createdate>2007-08-31T19:58:56.907 JST</Createdate>
    <Updatedate>2007-08-31T19:58:56.907 JST</Updatedate>
    <Description>Please write description</Description>
  </PipeLine>
  <PipeLine>
    <Id>pl_00005</Id><Name>新規パイプライン</Name><Runmode>stop</Runmode>
    <Createdate>2007-09-07T17:22:51.473 JST</Createdate>
    <Updatedate>2007-09-07T23:57:32.252 JST</Updatedate>
    <Description>Please write description</Description>
  </PipeLine>
  <PipeLine>
    <Id>pl_00006</Id><Name>SfDC</Name><Runmode>stop</Runmode>
    <Createdate>2007-09-10T17:40:55.334 JST</Createdate>
    <Updatedate>2007-09-10T18:25:03.015 JST</Updatedate>
    <Description>Please write description</Description>
  </PipeLine>
  <PipeLine>
    <Id>pl_00007</Id><Name>新規パイプライン</Name><Runmode>run</Runmode>
    <Createdate>2007-09-14T02:50:15.913 JST</Createdate>
    <Updatedate>2007-09-14T02:53:58.568 JST</Updatedate>
    <Description>Please write description</Description>
  </PipeLine>
</PipelineList>

レスポンスがJSON

<リクエストURL>
http://hostname:25080/pipelineapi/list/json
{"PipelineList":
     {"PipeLine":
        [
         {"Name":"パイプラインーサンプル","Description":"Please write description","Updatedate":"2007-09-14T07:37:15.692 JST",
          "Id":"pl_00001","Createdate":"2007-08-31T19:58:36.752 JST","Runmode":"run"},
         {"Name":"パイプライン-テスト","Description":"Please write description","Updatedate":"2007-08-31T19:58:56.907 JST",
          "Id":"pl_00002","Createdate":"2007-08-31T19:58:56.907 JST","Runmode":"stop"},
         {"Name":"新規パイプライン","Description":"Please write description","Updatedate":"2007-09-07T23:57:32.252 JST",
          "Id":"pl_00005","Createdate":"2007-09-07T17:22:51.473 JST","Runmode":"stop"},
         {"Name":"SfDC","Description":"Please write description","Updatedate":"2007-09-10T18:25:03.015 JST",
          "Id":"pl_00006","Createdate":"2007-09-10T17:40:55.334 JST","Runmode":"stop"},
         {"Name":"新規パイプライン","Description":"Please write description","Updatedate":"2007-09-14T02:53:58.568 JST",
          "Id":"pl_00007","Createdate":"2007-09-14T02:50:15.913 JST","Runmode":"run"}
        ]
     }
}

レスポンスがHTML

<リクエストURL>
http://hostname:25080/pipelineapi/list/htm
<?xml version="1.0" encoding="UTF-8"?>
<table>
<tr>
<td>pl_00001</td><td>パイプラインーサンプル</td><td>run</td>
<td>2007-08-31T19:58:36.752 JST</td><td>2007-09-14T07:37:15.692 JST</td><td>Please write description</td>
</tr>
<tr>
                 :
                 :
<tr>
<td>pl_00007</td><td>新規パイプライン</td><td>run</td>
<td>2007-09-14T02:50:15.913 JST</td><td>2007-09-14T02:53:58.568 JST</td><td>Please write description</td>
</tr>
</table>

凡例

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

APIリスト

パイプライン一覧取得

URLhttp://[hostname]:[port]/pipelineapi/list
説明パイプライン一覧のリストを返します

リクエストget:メソッド
パラメータ説明
---指定できるパラメータはありません
レスポンス
ノード説明
PipelineListルートエレメントになります
PipeLineパイプライン情報セットエレメント
IdパイプラインID
Nameパイプライン名
Runmoderun:開始状態、stop:停止状態
Createdateパイプライン作成日付
Updatedateパイプライン更新日付
Descriptionパイプラインの説明

<リクエスト>
GET /pipelineapi/list/xml HTTP/1.1
X-Pipelinewebapi: 1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d
Connection: close
Accept: */*
Content-Type: application/x-www-form-urlencoded
Host: 192.168.5.165:38080

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 1323
Server: ASTERIA HTTP Daemon/1.01
Date: Thu, 13 Sep 2007 21:51:53 GMT
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<PipelineList>
<PipeLine>
<Id>pl_00001</Id>
<Name>パイプラインーサンプル</Name>
<Runmode>run</Runmode>
<Createdate>2007-08-31T19:58:36.752 JST</Createdate>
<Updatedate>2007-09-14T05:10:38.627 JST</Updatedate>
<Description>Please write description</Description>
</PipeLine>
<PipeLine>
<Id>pl_00002</Id>
<Name>パイプライン-テスト</Name>
<Runmode>stop</Runmode><Createdate>2007-08-31T19:58:56.907 JST</Createdate>
<Updatedate>2007-08-31T19:58:56.907 JST</Updatedate>
<Description>Please write description</Description>
</PipeLine>
<PipeLine>
<Id>pl_00005</Id>
<Name>新規パイプライン</Name>
<Runmode>stop</Runmode>
<Createdate>2007-09-07T17:22:51.473 JST</Createdate>
<Updatedate>2007-09-07T23:57:32.252 JST</Updatedate>
<Description>Please write description</Description>
</PipeLine>
</PipelineList>

パイプライン実行

URLhttp://[hostname]:[port]/pipelineapi/exec
説明パイプラインを実行します。idで実行するパイプラインを指定します

リクエストpost:メソッド
パラメータ説明
pipelineid実行するパイプラインのパイプラインID
othersそのほかのパラメータはすべてリクエスト引数としてパイプラインに渡します
レスポンス
ノード説明
ExecuteResponseルートエレメントになります
StatusOK:成功時、Failed:失敗時
Messageメッセージが入ります

<リクエスト>
POST /pipelineapi/exec/xml HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 192.168.5.165:38080
User-Agent: libwww-perl/5.805
Content-Length: 38
Content-Type: application/x-www-form-urlencoded
X-PIPELINEWEBAPI: 1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d

pipelineid=pl_00001&filename=plrun.dat


<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 120
Server: ASTERIA HTTP Daemon/1.01
Date: Thu, 13 Sep 2007 22:47:15 GMT
Connection: close

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

リクエスト一覧

URLhttp://[hostname]:[port]/pipelineapi/requestlist
説明リクエストの一覧を返します

リクエストget:メソッド
パラメータ説明
id表示したいパイプラインIDを指定します
dateyyyyMMddの形式で表示する日付を指定します
errorエラー状態のリクエストを表示します
indexリクエスト一覧の開始番号を指定します
pagesize一度に取得するリクエスト情報数を指定します
レスポンス
ノード説明
RequestListルートエレメントになります
RequestIdリクエストID
PipelineIdパイプラインID
Nameパイプライン名
Statusステータスが設定されます
Start開始
WaitProcess実行待ち
Process実行中
Cancelキャンセル
Finish完了
Stop停止して完了
WaitAutoRetry自動リトライ待ち
WaitManualRetry手動リトライ待ち
Errorエラー
詳細はパイプラインサービスマニュアルを参照してください
Stage現在のステージ完了 (現在のステージがない場合はCompleteが設定されます)
BeginTimeパイプライン処理開始時間
Infoインフォメーション
Index先頭のリクエスト情報の番号
Prevレスポンスデータの1ページ前の番号
Nextレスポンスデータの1ページ次の番号
Count取得したリクエスト情報の件数
Errorエラーのみの表示かどうか
Date指定した日付
Id指定したパイプラインID

<リクエスト>
GET /pipelineapi/requestlist/xml?id=pl_00001&date=20070914 HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 192.168.5.165:38080
User-Agent: libwww-perl/5.805
Content-Type: application/x-www-form-urlencoded
X-PIPELINEWEBAPI: 1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 670
Server: ASTERIA HTTP Daemon/1.01
Date: Thu, 13 Sep 2007 21:35:19 GMT
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<RequestList>
<Request>
<RequestId>pl_00001-20070914_05-000002</RequestId>
<PipelineId>pl_00001</PipelineId>
<Name>パイプラインーサンプル</Name>
<Status>Finish</Status>
<Stage>Complete</Stage>
<BeginDate>2007-09-14 05:11:12</BeginDate>
</Request>
<Request>
<RequestId>pl_00001-20070914_05-000001</RequestId>
<PipelineId>pl_00001</PipelineId>
<Name>パイプラインーサンプル</Name>
<Status>Finish</Status>
<Stage>Complete</Stage>
<BeginDate>2007-09-14 05:11:11</BeginDate>
</Request>
<Info>
<Index>0</Index>
<Prev>-1</Prev>
<Next>-1</Next>
<Count>2</Count>
<Error>false</Error>
<Date>20070914</Date>
<Id>pl_00001</Id>
</Info></RequestList>

リクエスト詳細

URLhttp://[hostname]:[port]/pipelineapi/requestdetail
説明リクエストの詳細を表示します

リクエストget:メソッド
パラメータ説明
requestid詳細を取得するリクエストのIDを指定します
レスポンス
ノード説明
RequestDetailルートエレメントになります
RequestIdリクエストID
PipelineIdパイプラインID
Nameパイプライン名
Statusステータスが設定されます
Start開始
WaitProcess実行待ち
Process実行中
Cancelキャンセル
Finish完了
Stop停止して完了
WaitAutoRetry自動リトライ待ち
WaitManualRetry手動リトライ待ち
Errorエラー
詳細はパイプラインサービスマニュアルを参照してください
Stage現在のステージ完了 (現在のステージがない場合はCompleteが設定されます)
BeginTimeパイプライン処理開始時間
EndTimeパイプライン終了時間
SensorTimeセンサーステージ処理時間
FilterTimeフィルターステージ処理時間
JointTimeジョイントステージ処理時間
SensorFileセンサーアクションのファイル内容
FileSizeセンサーアクションのファイルサイズ

<リクエスト>
GET /pipelineapi/requestdetail/xml?requestid=pl_00001-20070914_05-000002 HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 192.168.5.165:38080
User-Agent: libwww-perl/5.805
Content-Type: application/x-www-form-urlencoded
X-PIPELINEWEBAPI: 1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 900
Server: ASTERIA HTTP Daemon/1.01
Date: Thu, 13 Sep 2007 20:11:29 GMT
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<RequestDetail>
<RequestId>pl_00001-20070914_05-000002</RequestId>
<PipelineId>pl_00001</PipelineId>
<Name>パイプラインーサンプル</Name>
<Status>Finish</Status><Stage>Complete</Stage>
<BeginTime>2007-09-14 05:11:12</BeginTime>
<EndTime>2007-09-14 05:11:13</EndTime>
<SensorTime>00:00</SensorTime>
<FilterTime>00:00</FilterTime>
<JointTime>00:00</JointTime>
<SensorFile><![CDATA[

センサーファイル内容がここに入ります。


]]></SensorFile>
<FileSize>3.8KB</FileSize>
</RequestDetail>

リトライ実行

URLhttp://[hostname]:[port]/pipelineapi/requestretry
説明エラーが発生しているパイプラインのリクエストに対してリトライをします

リクエストput:メソッド
パラメータ説明
requestidリトライ対象のパイプラインのリクエストIDを指定します
レスポンス
ノード説明
ExecuteResponseルートエレメントになります
StatusOK:成功時、Failed:失敗時
Messageメッセージが入ります

<リクエスト>
PUT /pipelineapi//requestretry/xml HTTP/1.1
X-Pipelinewebapi: 1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d
Connection: close
Accept: */*
Content-Type: application/x-www-form-urlencoded
Content-Length: 37
Host: 192.168.5.165:38080

requestid=pl_00007-20070914_02-000002

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 118
Server: ASTERIA HTTP Daemon/1.01
Connection: close
Date: Thu, 13 Sep 2007 17:57:30 GMT

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

リクエストキャンセル

URLhttp://[hostname]:[port]/pipelineapi/requestcancel
説明パイプラインのリクエストをキャンセルして停止状態にします

リクエストdelete:メソッド
パラメータ説明
requestidキャンセルするリクエストIDを指定します
レスポンス
ノード説明
ExecuteResponseルートエレメントになります
StatusOK:成功時、Failed:失敗時
Messageメッセージが入ります

<リクエスト>
DELETE //pipelineapi//requestcancel/xml HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 192.168.5.165:38080
User-Agent: libwww-perl/5.805
Content-Type: application/x-www-form-urlencoded
X-PIPELINEWEBAPI: 1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d
Content-Length: 37

requestid=pl_00007-20070914_02-000003

<レスポンス>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Length: 118
Server: ASTERIA HTTP Daemon/1.01
Connection: close
Date: Thu, 13 Sep 2007 17:57:30 GMT

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

APIクライアント

APIキット

APIキット一式をリンクからダウンロードできます。

apikit-0.0.1.zip: version 0.0.1

クライアントのインターフェイス

interface Client {

        // GET メソッドでリクエストを送信
        ResponseResult      get( url , data ) ;
        ResponseResult      get( url , data , headers ) ;
        // POST メソッドでリクエストを送信
        ResponseResult      post( url , data ) ;
        ResponseResult      post( url , data , headers ) ;
        // PUT メソッドでリクエストを送信
        ResponseResult      put( url , data ) ;
        ResponseResult      put( url , data , headers ) ;
        // DELETE メソッドでリクエストを送信
        ResponseResult      delete( url , data ) ;
        ResponseResult      delete( url , data , headers ) ;

}

レスポンスオブジェクトのインターフェイス

interface ResponseResult {

        // response
        int                       status() ;  // OK, Error , SystemError , Unknown のいずれかを示す整数値
        int                       format() ;  // XML, Json , Html , Unknown のいずれかを示す整数値
        Object                  response() ;  // それぞれのコンテントタイプに合わせたObject
        string                   text() ;     // レスポンスボディの文字列

}

ライセンス

全てのキットはBSD ライセンスになります。

Ruby

ResponseResultのresponseは以下のコンテントタイプごとに、

が格納されています。

Rubyの実行サンプル

#!/usr/bin/ruby

require 'asteria'

api_key = '1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d'
api = ASTERIA::Client.new( api_key , '192.168.5.165' , 25080 )

xmlresult = api.get( "/list/xml" , "" )

print "#{xmlresult.text}"

Perl

ResponseResultのresponseは以下のコンテントタイプごとに、

が格納されています。

Perlの実行サンプル

#!/usr/bin/perl

use ASTERIA::Client ;

$api_key = "1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d" ;

$apiclient = ASTERIA::Client->new( { license => $api_key , hostname => "192.168.5.165" , port => 25080 } );

$result = $apiclient->post( "/exec/xml" , { pipelineid => "pl_00001" , filename => "plrun.dat" } ) ;
$txt = $result->text ;

print "$txt" ;

Java

ResponseResultのresponseは以下のコンテントタイプごとに、

が格納されています。

Javaの実行サンプル


import com.infoteria.asteria.net.http.speaker.Client ;
import com.infoteria.asteria.net.http.speaker.ClientException ;
import com.infoteria.asteria.net.http.speaker.ResponseResult ;


public class Sample {

    public static void main( String[] args ) throws ClientException {

        String key    = "1d1687d0-ec6e-4a78-ad66-be9c024c34f1-0deafe00f429d31e0f62ff2baaf5789d" ;
        String host   = "192.168.5.165" ;
        int    port   = 25080 ;

        Client client = new Client( key , host , port ) ;

        try {
            ResponseResult result = client.get( "/list/xml" , null ) ;

            String text = result.getText() ;

            System.out.println( text ) ;
        } catch ( ClientException e ) {
            e.printStackTrace() ;
        }
    }
}

以下の手順でパイプラインAPIのフローコンポーネントサンプルを使用できます。

Setp1 :: Jar をflowlibにコピー

javaキットの中の flowpipelineapi.jar を[Install Dir]/flow/lib/flowlib 以下にコピーします。

Setp2 :: デザイナー側で同期

デザイナーでコピーしたコンポーネントのファイルをダウンロードします。 ダウンロー後、デザイナーを再起動します。

Setp3 :: フローを作成
Setp4 :: フローを実行

実行した結果内容

PHP

ResponseResultのresponseは以下のコンテントタイプごとに、

が格納されています。

PHPの実行サンプル

<?php

include_once 'client.php';

$apikey = "";
$host ="192.168.5.165" ;
$port = 38080 ;

$apiclient = new Client( $apikey , $host , $port ) ;

$result = $apiclient->get( "/list" ) ;

echo $result->text ;

?>

[ TOP ]