今回はじめてAPIというのを作ったので、そのやり方を忘れないうちに記していこうと思います。
APIってなんぞや?
APIとは"Application Programming Interface"の略です。
具体的には、あるコンピュータープログラムの機能や管理するデータなどを、外部の他のプログラムから呼び出して利用する為の手順やデータ形式などを定めた規約のことだそうです。(参考:API IT用語辞典より)
一般的には、外部のプログラムから使われることを目的として作られた関数という認識なのかなと個人的には思ってます。
作ってみました。
今回は、user_idを入力したらそのuser_id
に紐づいているphoto_id
を出力してくれるAPIを作成しました。
1.関数を作る。
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.ルーティング設定
外部から呼び出したい場合は、test/user_photosに対しルーティング設定を行う必要があります。
GET test/user_photos/:id
と設定します。
これでブラウザで~/test/user_photos/:id #存在するuser_ID
を叩けば、紐づいているphoto_idがjson形式で返ってくるようになりました。
この時点で、user_photosは外部からアクセスが可能な関数となりました。
次回は、このapiの使い方について書きたいと思います。