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と使い分けて使用する。