API の要求仕様
1. REST API
a. チャット履歴取得、画像読み書き等
2. リアルタイムな WebSocket API
a. リアルタイムなチャットメッセージ
https://cookpad.github.io/cookpad-internship-2018-summer/slackpad-server/
REST API
● REST の思想に沿って設計された Web API
○ Web API の設計方針としてデファクトスタンダード
● Book リソースを扱うなら以下のような URL となる
○ POST /books
○ GET /books, GET /books/:id
○ PUT /books/:id
○ DELETE /books/:id
Rails と REST
● Rails は REST 考えに基づいている
○ 考えに沿ってアプリケーションを設計をすると実装が簡潔になる
● Book リソースの URL ルーティング定義は一行に
○ resources :books
■ POST /books
■ GET /books, GET /books/:id
■ PUT /books/:id
■ DELETE /books/:id
Slide 28
Slide 28 text
(余談)REST API 以外の選択肢
● gRPC
○ 分散システム上で動く RPC フレームワーク
● GraphQL API
○ GraphQL と呼ばれるクエリを受け取る API
● XML-RPC, SOAP, …
○ 色々あります(ありました)
Slide 29
Slide 29 text
3. WebSocket
Slide 30
Slide 30 text
WebSocket とは
The WebSocket protocol enables interaction between a web client (such as a
browser) and a web server with lower overheads, facilitating real-time data
transfer from and to the server.
WebSocket プロトコルはウェブクライアント(ブラウザなど)とウェブサーバーの相互
通信を可能にし、オーバーヘッドを削減し、サーバーとのリアルタイムのデータ転送を
容易にします。
https://en.wikipedia.org/wiki/WebSocket