5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

obnizAdvent Calendar 2022

Day 1

じつはいろいろあるobniz APIのお話

Last updated at Posted at 2022-11-30

これはobnizアドベントカレンダー2022の1日目の記事です

obniz使ってるよ! ってひとでも案外obnizが提供しているいろいろなAPIについては知られてなかったりするので、ちょっとAPIについて書いてみます

obniz ハードウェアAPI (Websokcet)

一番みんなが使ってるAPI。 obniz.jsが裏で使っているもの。
Websocketを利用して双方向通信をしながらデバイスの制御を行います。
https://obniz.com/ja/doc/reference/cloud/hardware-api/websocket-api

できること

  • IOのON/OFFやUARTの送受信など、ピンの制御
  • ディスプレイやスイッチなど、obnizBoardについているコンポーネントの状態把握

基本的にはデバイスに関することができます。Websocketなので双方向通信ができるのがポイントで、
IOの状態を変更するといったプログラム→デバイスの通信も、IOの状態を取得するといったデバイス→プログラムの通信も可能です。

obniz api.drawio (2).png

WebsocketでAPIを作って公開しているところ、obniz以外だと全く知らない。。。
ブロードキャストで配信だけならビットコイン取引所とかあるんですが、個別のAPIは見ないですね。

websocketの中身はJSONになっていて、そこも含めて全部公開しています。
https://obniz.com/ja/doc/reference/websocket/ws

obniz ハードウェアAPI (REST API)

obniz ハードウェアAPI (Websokcet)って一般的じゃないよねってことで一応用意したREST API。
RESTは双方向通信ではないため、IOの状態を変更するといったプログラム→デバイスの通信はできるが、状態の確認などのデータ取得はできない。

できること

  • IOの状態を変更する、UARTを送信するなどの1方向通信

obniz api.drawio (1).png

REST APIとしてつくったものの、あまり使われてない。(みんなobnizjsを使ってくれている)

obniz Messaging API

obnizjsの中にひっそりと含まれているjs同士が通信するためのAPI.
obnizjsの中にあるのに、デバイスには通信が届かず、代わりにそのデバイスにつながっているobnizjsに通信が届く。

なお、じつはREST APIからこのmessageを送ることもできる

できること

  • 複数のobnizjs同士で文字列を送りあえる

obniz api.drawio (3).png

複数のobnizjsから1デバイスを制御する際の連携機能として作成。うまく使えば複数人が1つのデバイスを協調して動かすみたいなことができるかも。
※obnizの作品じゃないけど、 論理演算式コントローラー みたいなのって面白いなぁとおもってます

アプリのクラウド実行

API・・・と見せかけてAPIじゃないやつ
ただ、使い方によっては独自APIを生やしている、と言えなくもない。いや、言えないか。

予めobnizが動くHTMLを作っておき、それをwebhookで起動する方法。webhook起動なので、いろいろなサービスと連携することができる。

できること

  • 30秒以内でobnizデバイスを制御できる
    • デバイスの制御はobnizjsでできることなら何でも
    • というかHTMLでできることなら何でも

obniz api.drawio (5).png

obniz Cloud API

知る人ぞ知る、開発者コンソール内をブラウザを使わずに操作できるAPI。
デバイス一覧とか、アプリのインストールとかそういう普通は人がやるような作業を自動化するためのAPI
UIをポチポチ操作する代わりになる

できること

  • 開発者コンソール内で行っていたことを自動化できる
  • デバイス一覧取得
  • アプリのインストール
  • デバイス設定の変更 など

obniz api.drawio (4).png
※画像はイメージです

少量のデバイスだったらUIでやったほうが早いけど、大量のデバイスを持っている場合にありがたいやつ。
GraphQLで提供しているので、お好きなクライアントライブラリを使って利用することができる。


というわけで、obnizが提供しているAPIを紹介してみました!
大抵の人は最初の obniz ハードウェアAPI (Websokcet)しか使ったことないんじゃないかなと思います。

是非機会があれば使ってみてください。

あしたは @wakasamasao さんです!
タイトルみたら アプリのクラウド実行 について詳しく書いてくれそう・・!(期待)

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?