RESTful Web APIs 読書メモ(13)
Chapter 13. CpAP: REST for Embedded Systems
- CoAP
- IOT(Internet of Things)のような低出力組み込み環境用
- HTTPの考えを踏襲
- ハイパーメディア駆動のRESTful APIが使用可能
CoAP(Constraintrd Application Protocol)
- 低出力組込み機器むけプロトコル
- UDPベース
- メソッド
- GET/POST/PUT/DELETE
- 安全性と冪等性はhttpと同じ
- GET/POST/PUT/DELETE
- CONリクエスト
- conformableメッセージ
- ACKを受け取るまで送り続ける
- NON
- nonconformableメッセージ
- ACKレスポンスを要求しない
- RST
- resetメッセージ
- 対象機器を再起動させたりとか
リクエスト
''' CON [0xbc90] GET /temperature Token [0x71] '''
- CON
- confirmable
- 0xbc90 * メッセージID
- Token
- すべてのレスポンスで使われる値
レスポンス
''' ACK [0xbc00] 2.05 Content (Token 0x71) Content-Format: text/plain ; charset=utf-8 22.5 C '''
- ACK
- 受信
- 2.05
- ステータスコード
- Content-Format
- httpのcontent-typeと同じ意味
- 22.5 C
- entity-bidy
Delayed Response
- クライアントはCON を送り、サーバーは瞬時にACKを返す
- しばらくしサーバーは、別メッセージIDで同トークンをもつCON / NONを送る
Multicast Message
- UDP multicastを用いたメッセージを一括配信をサポート
- 機器間で自律的な検出、データ交換、コラボが可能となる
- 自律的な振る舞いは、REST制約のハイパーメディアコントロールが重要
CoAE Link Format
- media-type
- application/link-format
- プロトコルセマンティクス
- GETによるナビゲーションと探索
- アプリケーションセマンティクス
- ない!
- RFC6690
- 全体として80Byteな1024Byteに抑えることは、他のフォーマットでは不可能
- Http圧縮で帯域幅を抑えても、各機器のスペックでは展開できない
- CoAPと異なりhuman-readableフォーマット