LoginSignup
17
18

More than 5 years have passed since last update.

WEB Apiの話 (Restful)

Posted at

いろいろなAPIの種類

API 名 プロトコル データの形式 通信
REST REST JSON、XML 同期
SOAP SOAP XML 同期
Streaming Bayeux JSON 非同期
XML-RPC RPC XML 同期
JSON-RPC RPC JSON 非同期

Twitter streaming api
cybozudev api

Restとは

  • RESTはREpresentational State Transferの略。
  • RESTの原則に従って実装されているシステムのことを、RESTfulと呼ぶ。
  • RESTの世界では、ネットワーク上のコンテンツ(リソース)を一意なURLで表すのが基本。
  • 各リソース(URL)に対してPOST、GET、PUT、DELETEでリクエストを送信する。
  • 上のリクエストは、CRUD(Create、Read、Update、Delete)に紐付ける。
  • 大体、レスポンスをXMLやjsonの形式で受け取る。

Restの設計

  • URL設計
    • リソースを名詞であらわす。: /user/10 /song/5 video/7
    • POST は create, GET は read, PUT は update, DELETE は delete。HTTPのメソッドをリソースの操作する。
    • リソースを名詞で表現できない場合、動詞使う。: /search /convert
    • リクエストのパラメータを活用し、URLの階層を浅く保つこと。
    • リソースの関係の階層の表現。: user/999/friends
  • version設計
    • バージョンをつけること。(API改修は必ずある) :/v1/user
    • バージョンは URL にいれると, HTTP ヘッダにいれると、2 パターンがある。  ブラウザ開発しやすいのは、URLにいれるほう。
  • エラーハンドリング
    • 成功: 200, 201
    • client error: 400, 401, 403, 404
    • server error: 500
    • 変更なし: 304
  • パラメータの表現
    • パラメータにカンマ区切りで指定 : /shop?fields=name,category,location
    • offse 番目から limit 件取得    : /shop?limit=25&offset=10`

RestのDOCの便利ツール

iodocs
Swagger
Apiary.io

17
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
18