Ruby on RailsでAPIを作成する時の注意点、参考記事まとめ

こんにちは!インストラクターの佐野です。Ruby on Railsを学習して、WEBアプリ開発を行っている方は多いでしょう。

中には、Ruby on RailsでWEBアプリではなく、iOSやAndroidアプリ用にAPIを作成したい方もいらっしゃるのではないでしょうか。ただ、WEBアプリ開発はたくさん情報がありますが、APIの開発は情報が少ないです。

そこで今回は、Ruby on RailsでAPIを作成する時と注意点や参考になる記事をまとめました。この記事を読んでいただければ、Ruby on Railsをより広い範囲で使いこなせるようになるでしょう!

はじめに

Ruby on Railsとは

「Ruby on Rails(以下、Rails)」とは、プログラミング言語「Ruby」のフレームワークです。高速でWEBアプリを開発していくことができるので、海外やベンチャー企業を中心に非常に人気があります。

今回は、RailsでWEBアプリではなく、iOSやAndroidアプリ用のAPIを作成する方法を解説します。

Rubyを学習したい方やRailsでWEBアプリを開発したい方は、こちらのカリキュラムをご覧ください。

APIとは

APIとは、ソフトウェアの機能を共有することです。通信を行うiOSやAndroidのアプリを開発する場合は、データを共有したり保存したりできるAPIを利用する必要があります。

すでに作られているAPIを利用することも多いですが、自分で作成することもできます。独自サービスを開発する場合、自分で作ったWEBアプリと連携させたい場合などは自分で作成する必要があるでしょう。

APIに関しては、こちらの記事で詳しく解説しています。

RailsでもAPIを作ることはもちろん可能です。しかし、WEBアプリを作成する場合と違って、注意点や作り方が異なるので別の知識が必要です。まず、APIを作成する場合はWEBアプリを作成する場合と違って何が違うのか、注意点を解説します。

RailsでAPIを作成するときの注意点とは

shutterstock_346450208

画像:shutterstock

WEBアプリを作成する場合と大きく違う点は、3つあります。

  • HTMLやCSSなどを使った、いわゆるWEBページを使わない
  • エラー処理が重要
  • デバッグが難しい


の3つです。まず、APIは通信用のサーバーとして働くので、HTMLやCSSを使わないことがほとんどです。WEBページや画面遷移などの機能は実装しません。その代わりに、いかに適切なデータを返すかといった部分が非常に重要になってきます。

具体的には、エラー処理がものすごく重要になってきます。スマホアプリが、通信がうまく機能しないと、スマホアプリ自体がうまく動かなくなったり機能しなくなるからです。

また、事前の設計も機能ごとに「どういった通信を行ってどのようなデータを返すのか」という部分を詳細まで決めておく必要があります。

APIは他のアプリと連携するので、連携がうまくできているかどうか双方を確認する必要があり、バグがあった場合に原因を特定して修正するデバッグが難しくなるのです。これらを踏まえた上で、APIは作成する必要があります。

では、具体的にどうやって作成していくのかをご紹介します。

RailsでAPIを作成する方法

「rails-api」のGemを使う

screenshot-2016-09-17-17-00-35

引用元:rails-api:GiHub https://github.com/rails-api/rails-api

RailsでWEBアプリを作成する場合は、通常「rails」のGemを使います。

ターミナルで

と打ち、Railsをインストールするでしょう。

ただ、RailsのGemはWEBアプリ作成を前提にしているので、機能がものすごく多いです。そのため、APIを作成するとなると機能が多すぎますし、APIを作成しづらいです。

APIを作成する場合には、「rails-api」というGemを使う方法があります。RailsでAPIを作成するための専用Gemです。機能が絞られ、APIを作成しやすいように工夫がされています。

詳しくは、こちらの記事で解説されています。
RailsでAPI開発する前に知っておくべき4つのこと – Qiita

なお、rails-apiの公式サイトはこちらです。

英語ですが、詳しく解説されています。
rails-api/rails-api – GitHub

Grapeを使う

screenshot-2016-09-17-17-01-31

RailsでAPIをシンプルに作成できるGrapeというGemがあります。本格的にAPIを作成する場合は、このGemが主に使われます。ルーティングやレスポンスの設定が簡単にできます。

詳しい使い方はこちらの記事で解説されていますので、参考にしてみてください。
RailsでAPIを作成するために色々比較したので所感と実装方法のご紹介

なお、Grapeの公式サイトはこちらです。
GitHub – ruby-grape/grape: An opinionated framework for creating …

こちらも英語ですが、こと細かく解説されているので、リファレンスとして利用するといいでしょう。

WEBアプリとAPIを同時に作成する方法

screenshot-2016-09-17-17-03-57

これまでは、API専用で作成する方法をご紹介しました。ただ、WEBアプリを作成して一部の機能だけAPIとして使いたい場合があります。同じサービスを、WEBアプリとスマホアプリの両方で作成する場合です。

その場合は、HTMLとjsonを同時にレスポンスで返し、URLの切り替えによってWEBページを表示するかAPIとしてデータを返すかといった切り替えをできるようにします。

スマホアプリも視野にいれて、WEBアプリを作成する必要があるので、高度な設計が必要になります。この方法は、初心者ではまず難しいです。WEBアプリを作成するかAPIを作成するかを絞ってまずは開発することをおすすめします。

こちらの記事で具体的な実装方法が解説されているので、挑戦してみたい方は参考にしてみてください。
RailsでAPI作成とAPIのテストのまとめ

まとめ

いかがでしたか?WEBアプリとAPIを作成する場合とでは、必要な知識や使うGemがかなり変わってきます。

API作成には、WEBの幅広い知識やプログラミング言語の高度な処理が求められます。まずWEBアプリと何が違うのかを知るために、既存のAPIを使ってみるといいでしょう。それから、自分でAPIを作成することをおすすめします。

Rubyカリキュラム無料公開中!

この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。

【Ruby入門ガイド】アプリ開発で知っておくべき知識を総ざらい
更新日 : 2018年11月23日

Rubyを最短で習得したい方へ

近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」

このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a1
LINEで送る
Pocket

書いた人

佐野裕史

佐野裕史

侍エンジニア塾インストラクター。
主に技術担当をしています。

【経歴】
力仕事、接客業、営業職など様々な業界を経てIT業界に参入。
IT未経験からスタートし、1ヶ月で仕事獲得に奇跡的に成功。
1年半後にフリーランスに転身。

Web開発を主に行っており、得意とするのはRails、Ruby。
【技術スキル】
Rails、Ruby、Swift、Java(Android)、JavaScript

【趣味、趣向】
麻雀
MTG(マジックザギャザリング)
ダーツ、卓球、野球、ボウリングなどの球技

【Facebookページ】
https://www.facebook.com/hiroshi.sano.7
【Twitter】
プログラミング講師@佐野裕史
自分でプログラミングができない人のために情報を発信しています。
お気軽にフォローください。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説