HTTP API と Realtime API
HTTP API(Hyper Text Transfar Protocol)
要求メッセージをHTTPリクエスト、応答メッセージをHTTPレスポンスという
リクエスト(要求)
別な言い方をすると注文。クライアントからサーバに送る。
よくあるのはデータが欲しいとか、データを保存してとかをリクエストする
以下リクエストの中身。
- URL
- メソッド
- GET:サーバへデータの要求
- POST:サーバへデータを送る
- 他にもPUT、DELETEとかあるよ
レスポンス(反応)
別な言い方をすると結果。リクエスト受けたサーバがクライアントに返す。
リクエストされたデータの中身とか、登録した結果など。
以下レスポンスの中身。
- ステータスコード(成否とかを数字で表現している)
- 200:成功
- 400:リクエストが不正
- 500:サーバのエラー
- コンテンツ(html)
REST API(REpresentational State Transfer)
- RESTの4つの設計原則
- セッションなどの状態管理を行わない。(やり取りされる情報はそれ自体で完結して解釈することができる)
- 情報を操作する命令の体系が予め定義・共有されている。(HTTPのGETやPOSTメソッドなど)
- すべての情報は汎用的な構文で一意に識別される。(URLやURIなど)
- パラメータを指定して特定のURLにアクセスするとXML(またはJSON)で応答される
- 情報の内部に、別の情報や(その情報の別の)状態へのリンクを含めることができる。
- リソースに対してURLが対応づけられる。=同じURLからは同じ結果が得られる(状態やセッションに依存しない
Realtime API= websocket
wss://ws.lightstream.bitflyer.com/json-rpc
WS:は WebSocket 接続用の新しい URL スキーマです。セキュリティで保護された WebSocket 接続用の wss: もあります。これは、https: がセキュリティで保護された HTTP 接続に使用されるのと同じです。
WebSocket は双方向通信プロトコルであり、これが HTTPの大きな違いの 1 つです。 接続が確立されると、WebSocket サーバーとクライアントは、Socket のように相互にデータを送受信することができます。 WebSocket サーバーとクライアントは、WebSocket 接続を確立するためにハンドシェイクを完了する必要があります。
Realtime API は、一本の TCP 接続で複数のチャンネルを購読することができます。一度、接続を確立した後はデータ受信のたびに切断する必要はありません。切断されない限り、データは継続して配信されます。
Realtime API は、API キーによる認証が不要な Public Channels と、 認証が必要な Private Channels に分けられます。
Private Channel の購読には認証が必要です。
認証要求パラメーター
下記のプロパティは全て必須です。
Property | Type | Description |
---|---|---|
api_key | String | API Key |
timestamp | Number | リクエスト時の Unix Timestamp (10 または 13 桁) |
nonce | String | リクエストごとにランダムな文字列 (16 から 255 文字) |
signature | String | 上記 timestamp + nonce を文字列連結したものを API Secret で HMAC SHA256 署名した Hex (16進数) 文字列 |