APIについて

たまにはプログラミング備忘録をば。

手早く書きます。

 

APIとは

Railsでアプリケーションを開発していると、Ajaxを使って操作性の高いページを作ることが多い。通常、Railsは必要なHTMLを組み立てて返すのが仕事になるが、JavaScriptから便利に扱えるようにJSON形式でデータを返すようにすることもできる。

HTMLだけでなく、必要なデータをJSONなどの別形式で返すサーバの仕組みのことをAPI、と呼ぶ。

 

APIの作り方

APIの機能をRailsに追加する時には大きく分けて下記3通りの方式がある。

1.HTMLを返すためのコントローラを共用して、APIとして使えるようにする。

⇨手軽にAPIを追加できる

2.API専用のコントローラを作成する

APIの機能が大きくなるとコントローラを分けた方が可読性が良くなる

3.APIを作成するためのgemを利用する

⇨HTMLとAPIのロジックが大きく異なる場合や、APIの分量が大きい場合は専用のgemを使うと便利

 

コントローラでの振り分け

HTMLを返す時にはERBやHAMLを使ったビューを利用して必要なページを生成するが、APIとしてJSONを返す場合はHTMLほどのロジックが必要ないため、ビューを使わずにデータを生成することができる。

前項の1でも触れたが、Railsには1つのコントーラーのアクションの中でHTMLとJSONというフォーマットごとに条件分岐できる仕組みがあるので簡単に触れる。

 

respond_toメソッド

Railsのコントローラで利用できるrespond_toメソッドを使用すると、リクエストがHTMLを求めているかもしくはJSONを求めているかを拡張子やヘッダー情報を利用して自動的に条件分岐してくれる。

 

ファイル:XXXX_controller.rb

respond_to do |format|
 format.html { render ... } # この中はHTMLリクエストの場合に呼ばれる
 format.json { render ... } # この中はJSONリクエストの場合に呼ばれる
end

 

こんな感じか。

主に非同期通信なんかで使われるよ。

忘れたら見返せよ、未来の自分。