データ転送

ルーティング設定の登録

Legs サーバーにはデバイスから外部サービスへデータを転送する際のルーティング設定を登録することができます。 登録した設定は データ転送 で利用します。

ルーティング

ルーティング設定はいくつも登録できます。各ルーティング設定には以下の情報が登録できます。

パラメータ 概要
ルーティング名 example/create ルーティングを指定する際のキーとなる値です
URL https://example.com/api/create ルーティング先のURLです
Headers AuthHeader:auth-info データ転送時に自動で追加するHTTPヘッダーを登録します

ルーティング名はデバイスからデータの転送先を指定する際のキーになります。その際ルーティング名とURLで以下のように変数を利用することが可能です。例として

  • ルーティング名: example/:method
  • URL: https://example.com/api/{method}

上記のように登録した場合、デバイス上で転送先にexample/createを指定するとhttps://example.com/api/createにデータが転送されます。

また転送先は複数登録することが可能で、その場合指定したルーティングに対してデータを転送するとそれぞれの転送先に同様のデータが転送されます。

データ送信

クライアントを利用することで、デバイスから外部サービスに向けてデータを送信することができます。 クライアントでは以下のようなコマンドでデータの転送が可能です。

# URL に対してテキストを送信する
$ legsc send http://example.com "transfer data"

# ルーティング設定を利用してテキストを送信する
$ legsc send example/create "transfer data"

# ルーティング設定を利用してJSONを送信する
$ legsc send example/create '{"key": "value"}'

また-vオプションをつけることでHTTPのレスポンス内容を転送先ごとに確認することができます。

$ legsc send -v example/hoge 'test-text'
---Response[0]---
URL: http://example.com
Status code: 200
body:

ダウンロード

データの送信と同様にダウンロードも可能です。公式クライアントの場合はダウンロードしたファイルの出力先を指定することが可能です。

# URL を指定してファイルをダウンロードする
$ legsc send http://example.com/document.txt /var/tmp/

# ルーティング設定の登録先からファイルをダウンロードする
$ legsc send example/document /var/tmp/

ルーティング設定に複数の転送先が指定されていた場合、複数の転送先からダウンロードされたファイルが別々にアウトプットされます。