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と同じ
  • 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フォーマット

つづき・・・

RESTful Web APIs 読書メモ(14)