コンテンツにスキップ

REST API

REST APIとは

REST API(Representational State Transfer API)は、Web上でシステム同士が情報をやり取りするための仕組みである。

フロントエンドとバックエンドの通信によく利用されており、現在のWebサービスでは事実上の標準となっている。

Asterでは、

  • ACの画面
  • Node.jsサーバー
  • 将来的な外部アプリ

などの通信に利用できる。


イメージ

ブラウザ
    ↓
REST API
    ↓
Node.js
    ↓
ALEO

例えばブラウザが現在の状態を取得したい場合、

GET /api/status

を送信する。

Node.jsは現在の状態を返す。


HTTPメソッド

REST APIではHTTPメソッドを利用して処理内容を表現する。

メソッド 意味
GET 取得
POST 作成
PUT 更新
DELETE 削除

GET

データ取得に利用する。

GET /api/status

結果

{
    "status": "READY"
}

POST

データ送信に利用する。

POST /api/motor

送信データ

{
    "speed": 50
}

PUT

既存データの更新に利用する。

PUT /api/config

DELETE

データ削除に利用する。

DELETE /api/logs

Node.jsの例

app.get("/api/status", (req, res) => {
    res.json({
        status: "READY"
    });
});

メリット

  • 実装が簡単
  • 理解しやすい
  • 多くのシステムで利用可能
  • ブラウザとの相性が良い

デメリット

  • リアルタイム通信が苦手
  • 頻繁な更新には向かない

Asterでの利用

ACとALEO間ではリアルタイム性が必要なためCAN通信を利用しているが、ACと操作画面との間にはそこまでのリアルタイム性は不要なため、REST APIでも十分通信は可能である。

また、情報更新などのリアルタイム性が必要なものにはWebSocketと使い分けて使用する。