1. seiya1121

    Posted

    seiya1121
Changes in title
+簡単な処理を行うAPIの作り方
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,42 @@
+
+今回はじめてAPIというのを作ったので、そのやり方を忘れないうちに記していこうと思います。
+
+##APIってなんぞや?
+APIとは"Application Programming Interface"の略です。
+具体的には、あるコンピュータープログラムの機能や管理するデータなどを、外部の他のプログラムから呼び出して利用する為の手順やデータ形式などを定めた規約のことだそうです。(参考:[API](http://e-words.jp/w/API.html) IT用語辞典より)
+
+一般的には、外部のプログラムから使われることを目的として作られた関数という認識なのかなと個人的には思ってます。
+
+##作ってみました。
+今回は、user_idを入力したらその``user_id``に紐づいている``photo_id``を出力してくれるAPIを作成しました。
+
+#1.関数を作る。
+
+```ruby:apis_controller.rb
+def user_photos
+ user = User.where(id: params[:id])
+ user_photos = Photo.where(user_id: params[:id])
+ error_message = User.where(id: params[:id]).blank? ? 'Can`t find the user`s photo' : ''
+ render :json => { user_photos: user_photos , error_message: error_message }
+end
+```
+
+これで、user_photosを実行するとphoto_idをゲットすることが出来ますが、まだ外部のプログラムからは呼び出せません。
+
+#2.ルーティング設定
+外部から呼び出したい場合は、apis/user_photosに対しルーティング設定を行う必要があります。
+
+```ruby:routes.rb
+GET apis/user_photos/:id
+```
+
+と設定します。
+
+これでブラウザで`~/apis/user_photos/:id #存在するuser_ID`を叩けば、紐づいているphoto_idがjson形式で返ってくるようになりました。
+
+この時点で、user_photosは外部からアクセスが可能な関数となりました。
+
+次回は、このapiの使い方について書きたいと思います。
+
+
+