柴犬 API (Shibe.Online) がなくなってしまったので Dog API に Node-RED でつないでみるメモです。
背景
昨年の中ごろですが、public-apis/public-apis: A collective list of free APIs を見ていたら、大好きな 柴犬 API (Shibe.Online) がなくなってしまいました。
こんな風に、運営が終わってドメインが買い取られたような挙動になっています。かなしい。
ということで、似たような API で返すデータが近い public-apis 由来で Dog API があったので Node-RED でつないでみます。
Dog API もシンプルに取得できる
こちらにある通りで GET リクエストで https://dog.ceo/api/breeds/image/random
にアクセスすると、
{ "message": "画像URL", "status": "success" }
として取得できます。シンプル。
Node-RED で取得してみる
フローを作ってみます。
まず inject ノードを配置します。
つづいて http request ノードを配置して inject ノードの後につなぎます。
http request ノードをダブルクリックして以下のように設定します。
- メソッド
- GET
- URL
- https://dog.ceo/api/breeds/image/random
- 出力形式
- JSON オブジェクト
change ノードを配置して http request ノード の後につなぎます。
change ノードをダブルクリックして以下のように設定します。
- 代入タイプ
- 値の代入
- 代入対象
- msg.payload
- 代入する
- msg.payload.message
メニュー > パレットの管理 > ノードの追加 で node-red-contrib-image-output を検索してノードをインストールします。
node-red-contrib-image-output ノードを配置して change ノード の後につなぎます。
デプロイをします。
動かしてみる
inject ノードのボタンをクリックして動かしてみましょう。
Dog API にアクセスできて犬の画像が取得できました!
柴犬だけじゃなく様々なわんこが見れます!