Ruby on Railsの概要と、サービスの構築例、Railsを使ったWebAPIの作成方法をまとめて解説
Ruby on Rails(以後Rails)は、WebアプリケーションやWebViewによるスマホアプリ、業務管理システムなどの開発に広く利用されているWebアプリケーションフレームワークです。Railsによって開発されたサービスやアプリケーションは多種多様で、業界や企業規模を問いません。では、具体的にどのようなシーンで利用されているのでしょうか? 本記事では、Railsの概要、Railsで開発されたサービスの例、RailsでAPIを作成する方法について紹介していきます。
Railsとは
Railsは、プログラミング言語Ruby上で動作するWebアプリケーションフレームワークです。Railsが動作するRubyは、まつもとゆきひろ氏によって1993年から開発が始められた言語で、エンジニアにとって「読みやすさ」と「書きやすさ」を重視した文法を備えています。
2004年にRailsが登場したことで、Webアプリケーションの開発を始めるときに必要となる多くの作業を簡単に実行することが可能となり、多くの開発者がWebアプリケーションをより簡単に構築できるようになりました。
Railsで開発されたサービスの例
Railsは「開発速度の早さ」と「汎用性の高さ」を特長としており、WebアプリケーションやWebViewによるスマホアプリ、業務管理システムなどで幅広く利用されています。続いては、実際にRailsで開発されたサービスの一例を紹介していきます。
1.料理レシピサービス「COOKPAD」
月間PV数が5億を超える国内トップクラスのレシピサービス。皆さんもよくご存知の「COOKPAD」は、Rubyで開発された代表的なサービスであり、世界でも有数のRails製巨大Webサイトです。また、クックパッド株式会社では、開発者ブログを通じてRailsの実装方法やノウハウを積極的に開示しています。Ruby on Railsによるサービス開発を検討するときは、まずチェックしておきたいサービスの一つといえます。
なお、この開発者ブログでは、自社で作成・使用しているライブラリ「Garage」と、Garageを使ったRESTful Web APIの開発方法も紹介されています。「コントローラーを作る」、「リソースを定義する」、「アクセスコントロールを定義する」の3ステップを繰り返してアプリケーションを開発することが可能です。
2.名刺管理サービス「Eight」
50万人以上が使う名刺管理システム「Eight」では、利用者がアプリ(スマートフォン)やブラウザ(PC)からアクセスするEightそのものと、Eightを通じてアップロードされる名刺情報の手作業入力を行うシステムの両方にRailsを採用しています。同社の法人向け名刺管理システム「Sansan」はC#で開発されていたため、新たに外部のRuby/Railsエンジニアを招いての開発となりましたが、「少ないコードで求める機能を実現できた」といわれています。さらに、会社や業務を超えた「技術者同士のつながり」が生まれ、協業しやすいといったメリットもあったようです。
Eightをはじめとする多くの名刺管理システムで利用されているOCR(文字処理技術)は、APIとしても提供されています。こういったサービスの設計・構築を行う場合は、事前に確認しておくとよいでしょう。なお、Rakuten RapidAPIでは、スキャンされたページのイメージをテキストに変換するAPI「Cloudmersive OCR」などが提供されています。
3.クラウド会計ソフト「会計freee」
「簿記の知識がなくても簡単に帳簿をつけられる」と評判が高いクラウド会計ソフト「会計freee」も、開発のスピード感を重視するために、Railsをフレームワークとして採用しています。会計に必要となるライブラリが豊富に揃っており、ロジックを組み立てるときに使うパーツが、いくつものgemと呼ばれる簡単に自身のアプリケーションに導入できるライブラリ・パッケージで提供されていたことから、「スピーディーな開発ができるだろう」との結論に至ったそうです。
会計処理や税務処理は、法改正の影響によりシステム改正を迫られるケースがよくあります。また、ユーザーの声をもとに機能をアップデートしていくことも、サービス品質の維持管理には欠かせません。freeeでは、こうした要件をRailsアプリケーションの分割により解決し、短期間でのサービスリリースを継続的に実現しています。
4.島根県庁
Rails APIは自治体でも活用されています。Ruby開発者、まつもとゆきひろ氏が在住する島根県では、Rubyを軸にソフト系IT産業の振興を目指しています。
さらに同県では、自庁内のシステムを刷新するにあたり、Rubyを開発言語の一つに選定し、16業務中14業務を、県内企業によるRuby開発で実装したとのことです。予算に限りがある多くの自治体にとって、島根県のように初期導入費を抑えながら庁内システムを刷新し、同時に産業振興も実現した事例は、大いに参考になるのではないでしょうか。
RailsでWebAPIを作成する方法
RailsでWebAPIを作成するには、どのような方法があるのでしょうか。以下に、代表的な作成方法を紹介しておきます。
方法1:「rails-api」のgemを使う
RailsでWebアプリを作成するときは、通常「rails」のgemを使います。RailsのgemはWebアプリの作成を前提にしているため、機能が豊富にラインナップされています。そのため、RailsでAPIを作成するための専用Gemとして「rails-api」というgemが用意されています。
方法2:WebアプリとWebAPIを同時に作成する
同じサービスをWebアプリとスマホアプリの両方で作成したい場合は、HTMLとJSONもしくはXMLを同時にレスポンスで返し、「URLの切り替えによってWebページを表示するか、それともAPIとしてデータを返すか」といった切り替えを可能にしておく必要があります。ただし、WebアプリとWebAPIの同時作成は高度な設計が必要になるため、素早く簡単に開発したい場合は、WebアプリかWebAPIのいずれかに的を絞って開発したほうがよいかもしれません。
RailsでWebAPIを作成するときの留意点
RailsでWebAPIを作成する際に、HTMLやCSSなどのいわゆる「Webページ系の言語」はほとんど使いません。Webページや画面遷移などの機能は実装しないので、「いかに適切なデータを返すか」が重要になります。エラー処理とデバッグ処理は特に注意が必要です。
Railsを使って高度な機能を手軽に実現するには
Railsの一般的な機能は日本語で解説されていることが多いため、ルールに沿ってコードを書いていけば素早く簡単に開発を進めることができます。また、サービスの成長や仕様変更に対して柔軟に対応できることから、業種や規模を問わず、さまざまな企業、自治体で幅広く採用されています。
しかし、実際にRails APIを利用して開発をしようとすると、システムの導入目的や要件を満たすための設計、さらには実装をどのようにすればよいのか、などについて苦慮する場面があるかもしれません。
8,000以上のAPIと50万人以上の開発者が集まるRakuten RapidAPIでは、Rubyのコードスニペットが提供されています。さらに、インストールやファイルアップロードといった基本的な設定からタイムアウトなどの高度な設定まで、RubyのSDKも豊富に用意されています。
アプリを開発する際にRakuten RapidAPIを利用すれば、開発者は外部のWebAPIを通じて高度な機能を簡単にアプリへ組み込むことができます。本記事で紹介した開発事例やAPIの作成方法を参考に、ぜひRailsによるWebAPIの作成を習得してください。
参考:
コメントを残す