Legs サーバーにはデバイスから外部サービスへデータを転送する際のルーティング設定を登録することができます。 登録した設定は データ転送 で利用します。
ルーティング設定はいくつも登録できます。各ルーティング設定には以下の情報が登録できます。
パラメータ | 例 | 概要 |
---|---|---|
ルーティング名 | example/create |
ルーティングを指定する際のキーとなる値です |
URL | https://example.com/api/create |
ルーティング先のURLです |
Headers | AuthHeader:auth-info |
データ転送時に自動で追加するHTTPヘッダーを登録します |
ルーティング名はデバイスからデータの転送先を指定する際のキーになります。その際ルーティング名とURLで以下のように変数を利用することが可能です。例として
example/:method
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/
ルーティング設定に複数の転送先が指定されていた場合、複数の転送先からダウンロードされたファイルが別々にアウトプットされます。