cre8cre8
AskMe♥

スマホアプリを作るために5分でWebAPIを作る方法を全力で超親切に解説する

WebAPIを使ってスマホアプリ作りたいなっと思っているそこの学生さん!
もしくは、仕事でAPIとスマホアプリの案件請けちゃったけど、俺やったことないんだよな…どうしよう…っと悩んでいるSIerの諸君!
このブログに出会えて幸運(笑)ですね♪全3回にわけて、中の人たくみが優しく丁寧かつ全力で解説します!

ここで私とのお約束です。コピペではなく、ちょっとめんどくさくても必ず手でタイプしてください。
かならずやあなたの血肉となり、ゆくゆくは5分で簡単なWebAPIなら作れるようになるでしょう!!
(今すぐ5分でAPIを作れるようになるとは一言も言っていn(ry

また当記事は、Ruby on Railsがすでにインストールされ、かつターミナル(CUI)からの操作を前提としています。
まだ、Railsが導入できていない場合は、申し訳ありませんがRuby/Railsのインストールから始めてください。

それでは、さっそくWebAPIを作ってみましょう!!

APIを作るためRailsの準備をする

API用のRailsアプリケーションを用意します。
コマンドrails newで作成し、念の為に起動確認します。

shell
1rails new api
2cd api
3rails s

上記コマンド入力後、ブラウザを開いて下記URLにアクセスしてください。
いつものRails画面がでたらOKです。
http://localhost:3000/contacts

scaffoldで問い合わせAPIをさっくりと作る

今回はよくアプリ内でよく使う(?)であろう「お問い合わせAPI」を作成します。
Railsを使えばAPIなんて魔法のように簡単にできます。
そうです。scaffoldを使います。

shell
1rails g scaffold contact name:string contact:text
2rake db:migrate

APIを使用するためにprotect_from_forgery(CSRF対策)を無効にします。
セキュリティ的には弱くなりますので本番環境で使う際には適切な設定にしてください。

app/controllers/application_controller.rb
1class ApplicationController < ActionController::Base
2  # Prevent CSRF attacks by raising an exception.
3  # For APIs, you may want to use :null_session instead.
4  protect_from_forgery with: :null_session # ここの :exception を :null_session に変更
5end

4行目の protect_from_forgery with: :exceptionprotect_from_forgery with: :null_session
変更したらコーディング完了です。ね?簡単でしょ?

次のステップに進むまえに念のためRailsサーバーを再起動しておきましょう。
Ctrl+cのあとに$ rails sで再起動できます。

curlコマンドで問い合わせAPIの動作を検証する

それでは、問い合わせAPIが動作するか検証してみましょう。
今回はAPI作成時に大変お世話になっているcurlコマンドさんを使用します。

shell
1curl -X POST -H "Accept: application/json" -H "Content-type: application/json" -d '{ "contact": { "name":"cre8cre8", "contact":"Hello, My name is Takumi Nishimura." } }' http://localhost:3000/contacts.json

APIが正常に動作したときのターミナル
問い合わせAPIがただしく動作した場合は上記のようなスクリーンショットになります。
http://localhost:3000/contact にアクセスして送信したデータが登録されているか確認しましょう。

curlコマンドで登録したデータを確認
Name/Contactにcre8cre8/Hello, My name is Takumi Nishimura.とデータが表示されていたら
データベースにもデータが正常に保存されています。

[Error] どうしてもエラーがでてうまく動作しない場合の最終兵器

エラーの場合は下記スクリーンショットのようにターミナルに表示されます。
エラーが出た場合の画面例
もし、上記のような画面になった場合は1から3の手順をもう一度試してみてください。
どうしてもエラーがでちゃう。。。早くiOS/Androidのコーディングしたいのに。。。 っという方や
API?んー。。。それより早く次のステップに進みたいんだけど。。。 っという方に朗報です。
たくみのgithubに今回のソースコードを公開しています。
やんごとなき事情により上記手順をすっ飛ばしたい方はgit cloneして、Railsサーバーを立ち上げてください。

shell
1git clone https://github.com/takumiio/5minutes-api
2cd 5minutes-api
3rake db:migrate
4rails s

まとめ

5分でお問い合わせAPIを作りはいかがでしたでしょうか?
最後にもう一度簡単に手順をおさらいしましょう。

  1. API用のRailsアプリケーションを作成 ($ rails new api)
  2. scaffoldでAPIを作る
  3. curlコマンドでテストし確認

シンプルで簡単なAPIだとこんな簡単に作れるのがRailsの魅力だと思います。
本格的なAPIを用いたアプリを作る場合は、これをひな形にコードを足していくだけで
十分実用的なAPIを作成することもできます。
実際、私はAPIを作るときRailsばかり使ってます。(やめられない♪とまらない♪)

次回はiOS(swift)で今回作ったお問い合わせAPIと連携するアプリを作成します。
もしわからないことや質問などありましたらお気軽にコメントやお問い合わせをしてくださいね。
それでは、次回をお楽しみに♪

≪ 前の記事
自分のIPアドレスしかアクセスできないようにして
AWS(AmazonLinux)EC2に開発用WordPressをインストールする
次の記事 ≫
「もうswift3でAPIを使ったiOSアプリを作れない」なんて言わせない!swift3でWebAPIリクエストをするアプリを作りながら解説するよ

いいねやコメントを送っていただけると中の人がしっぽ振って大喜びします♪

あなたへのおすすめの記事