Prog-me.

Rails中心、機械学習も、インフラもセキュリティも

API作成概要

API作成について

エンドポイントとは:

web APIにおけるエンドポイントは、アクセスするためのURIを指す。

エンドポイントの設計の原則:
覚えやすく、どんな機能をもつURIなのかすぐわかること

URI(エンドポイント)がAPIにおいて操作する対象(リソース)を表す
HTTPメソッドは何をするかを表す

メソッド

get リソース取得
post リソース新規登録
put 既存リソース更新
delete リソース削除
patch リソース一部変更
head リソースのメタ情報の取得

HTMLのフォームの仕様では、getとpostのみがサポートされているため、それ以外のメソッドを使うK十ができない。
そこで、
* X-HTTP-Method-OverrideというHTTPリクエストヘッダを利用
* _methodというパラメータを利用:
application/x-www-from-urlencodedという今テントタイプで表されるデータの一つとしてメソッドを送信する。
railsで利用。Formパラメータのひとつとして、_method=PUTなどとして指定

スペースやエンコードを必要とする文字をエンドポイントとしてつかわない 

URIでは利用できない文字があり、そういった文字はパーセントエンコーディングと呼ばれる文字コードを%つきで表した表記法を利用して表すが、よろしくない。
また、ホワイトスペースはURIでは+に変換される、kろえも見づらいからよくない。

検索と取得位置のパラメータ

アイテム数50個/ページ表示するとき、3ページめ(101個めのアイテムから表示)するならURI
per_page=50&page=3   や   limit=50&offset=100
が好ましい
どちらかというと、limit/offsetのほうがユーザの自由度は高い

絞り込み

名前検索
v1/people-search?first-name=Clair
タグ検索
v1/blog/pitchersandpoets.tumblr.com/posts?tag=new+york+yankees

twitter/1.1/search/tweets.json?q=%23freebandnames

OAuth

広く第三者に公開されるAPIにおいて認可を行うために利用される
自分がサービスを公開して、fbと連動させる場合に、
使用者がfacebookに登録している情報を利用していいか自身のサービスに許可を与えられる仕組みがOAuth

OAuthのポイントは、自身のサービスに対してユーザがfacebookのパスワードを入力する必要がないところ。
認可プロセスにおいて、fbの提供するウェブページを経由して認証するから。

データフォーマット

  • JSON
  • XML データフォーマットの主流はJSON ##データフォーマットのエンドポイントにおける表現 ?format=xml .json

この本から学んだことをまとめました.