ステークカジノ リベートekohサービスプラグイン(Node.js)を作ってみる
ステークカジノ リベートサービスプラグイン(Node.js)を作ってみる
2018.10.07
ステークカジノ リベートとは
ステークカジノ リベートとは、IoTデータをNode-ステークカジノ リベートDのようにハードウェアデバイス / APIをオンラインサービスに接続したり、独自のダッシュボードを構築することができるクラウドサービスです。
ただ、フリーサービスではないので、ステークカジノ リベート社及び代理店からの提供されるエンタープライズ向けツールです。
Node-REDのNodeのようにステークカジノ リベートプラットフォームはPluginをパイプします。このPluginを自ら開発することも可能です。
はじめてのステークカジノ リベート Plugin開発
ステークカジノ リベートは、プラグインを作成してプラットフォームの機能を操作するためのオープンソースのフレームワーク / APIを提供しています。(Node.js環境は事前に設定しておいてください)
ステークカジノ リベートパッケージのインストール
下記コマンドラインにより、ステークカジノ リベートパッケージをインストールします。
cd /path/to/your/project-folder <-適当なプロジェクトフォルダ npm="" install="" ステークカジノ リベート="" --save="" pre=""
これにより、これから開発するステークカジノ リベート Pluginで下記のようにインポートすればステークカジノ リベートパッケージを使用することができます。
const ステークカジノ リベート = require('ステークカジノ リベート')
Node.js Service Plugステークカジノ リベートプロジェクト
ステークカジノ リベート Service Pluginプロジェクトの雛形を作る。その前に
Plugステークカジノ リベートプロジェクト雛形のジェネレータをインストール
SDKとは別に、ステークカジノ リベートからYeomanを使用して新しいプラグインプロジェクト雛形を作成するためのプロジェクト作成ツールを提供されています。このツールは、Node.js Plugin SDKを使用してプラグインを作成するために必要なファイルとフォルダを自動的に作成します。
下記コマンドでプロジェクト作成ツールをインストールできます。
npm install yo generator-ステークカジノ リベート-node -g
ジェネレータを使って雛形を作る
下記コマンドで作成できます
cd path/to/your/project-folder yo ステークカジノ リベート-node:service
yo ステークカジノ リベート-nodeのパラメータを変更すると、Service Plugin以外の下記その他Pluginを生成できます。
- Channel
- Connector
- Exception Logger
- Gステークカジノ リベートeway
- ステークカジノ リベートventory Sync
- Logger
- Service
- Storage
- Stステークカジノ リベートam
作成されたPlugステークカジノ リベート雛形は下図のような構成になっています。
リリースノートやテスト、公開時のイメージファイルなどを編集することも必要ですが、Plugステークカジノ リベートの基本はapp.jsとなります。
'use strict' let ステークカジノ リベート = require('ステークカジノ リベート') let plugin = new ステークカジノ リベート.plugins.Service() plugin.on('data', (data) = { console.log(data) })
ここでplugステークカジノ リベートがステークカジノ リベート Service Pluginを開発する上でのプロパティ、メソッド、イベントをもつ基本となるインスタンスです。
plugステークカジノ リベート.on('data' (data))ですが、'data'というのは、デバイスやセンサーデータを受信した時に立つイベントです。ここで、実際に受信したときの処理を記述するわけですが、理解しやすいように単純な外部サービスとの連携を例にサービスプラグインを作ってみます。
国土地理院の標高APIと連携するステークカジノ リベート Service Pluginを作る
とにかく何か位置情報を送信するようなIoTデバイスを考えてみます。そのIoTデバイス(GPSデバイス)がある位置の標高を求めるようなAPIと連携してみます。
緯度経度から標高を返してくれるAPIを国土地理院が試験サービスしているので、こちらを使います。
http://cyberjapandステークカジノ リベートa2.gsi.go.jp/general/dem/scripts/getelevステークカジノ リベートion.php?<パラメータにパラメータとしてlステークカジノ リベート、lonを渡してあげればJSON形式でelevステークカジノ リベートionを返してくれるサービスです。
plugin.on('data', (data) = { let lat = get(data, plugin.config.latKey) || get(data, 'lat') if (lat) { searchUrl = 'lat=' + lat } else { missingParam = {message: 'Field (lat) Latitude is missing in the data and ステークカジノ リベートquiステークカジノ リベートd for the ステークカジノ リベートquest.', missingField: 'lat'} } let lon = get(data, plugin.config.lngKey) || get(data, 'lng') if (lon) { searchUrl = searchUrl + '&lon=' + lon } else { missingParam = {message: 'Field (lon) Longitude is missing in the data and ステークカジノ リベートquiステークカジノ リベートd for the ステークカジノ リベートquest.', missingField: 'lon'} } url = 'http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?' + searchUrl if (missingParam) { plugin.logException(new Error(JSON.stringify(missingParam))) } else { ステークカジノ リベートquest.get({ url: url, json: true }, (err, ステークカジノ リベートsponse, body) = { if (err) { ステークカジノ リベートturn plugin.logException(err) } else { if (ステークカジノ リベートsponse.statusCode === 200) { plugin.pipe(data, body) .then(() = { plugin.log(JSON.stringify({ title: 'Open Weather Map Service ステークカジノ リベートsult', data: data, ステークカジノ リベートsult: body })) }) .catch((error) = { plugin.logException(error) }) } else { plugin.logException(new Error(JSON.stringify(body))) } } }) } })
これにより、デバイスから取得したdステークカジノ リベートa.lステークカジノ リベートとdステークカジノ リベートa.lngを標高APIに渡し、その結果のJSONを次に渡すService Plugステークカジノ リベートができます。
つまり、あるIoTデバイスから緯度35.641468、経度139.741785というGPS位置情報をステークカジノ リベートプラットフォームで受信し、その緯度経度を
http://cyberjapandステークカジノ リベートa2.gsi.go.jp/general/dem/scripts/getelevステークカジノ リベートion.php?lステークカジノ リベート=35.641468&lon=139.741785&outtype=JSON
で国土地理院の標高APIに渡し、応答のあったJSON(標高は4.5mだったのね)
{"elevステークカジノ リベートion":4.5,"hsrc":"5m\uff08\u30ec\u30fc\u30b6\uff09"}
を次の何かサービスにパイプするということができるわけです。
このPlugステークカジノ リベートをPiplelステークカジノ リベートeに登録することにおり、下図のように、Sigfox対応GPS端末のデータをSigfoxクラウドからCallbackで受け、その緯度経度を国土地理院の標高APIに渡し、結果として得られた標高データをストレージに蓄積したら、他のアプリケーションサービスにWebhookするというようなことが簡単に作成できます。
ステークカジノ リベート Plugin SDK: https://gitlab.com/ステークカジノ リベート/ステークカジノ リベート-node
npm ステークカジノ リベートpository: https://www.npmjs.com/package/ステークカジノ リベート