Rails APIとは?APIの作成手順や注意点を解説!

Rails APIとは?APIの作成手順や注意点を解説!

Rubyで記述されたフレームワークである Ruby on Rails。 Ruby on Rails にはAPIモードがあり、APIを開発するために必要な様々な機能が用意されています。

この記事では、Rails APIがどういうものなのか、Ruby on Railsの特徴を含めて解説します。また、Rails APIモードの利用方法についても紹介しますので、参考にしてみてください。

Rails APIとは?

RailsにはAPIを開発するための「Rails API」モードがあります。Rails APIについて説明する前に、「Rails」と「API」がそれぞれどんなものなのか紹介します。

Railsとは、Ruby on Railsの略称で、RoRとも呼ばれます。Ruby on Railsは、WebアプリケーションやWebサービス開発のためのフレームワークであり、プログラミング言語Rubyで記述されています。Ruby on Railsの特徴については、のちほど詳しく解説します。

APIは、アプリケーションプログラミングインターフェース(Application Programming Interface)の頭文字をとったものです。APIとは、OSやアプリケーションなどが、他のアプリケーションに対して、 自身が管理しているサービスを利用できるようにするためのインターフェースです。

例えばWindowsは、Windows上で動作するアプリケーションのために、ファイル管理やメモリ管理、ウィンドウ管理などのAPIを公開しています。また、iOSやAndroidのアプリケーションを開発する場合は、データの共有や保存をするためのAPIを利用します。

システム提供者が公式的な外部仕様を定義しておくことで、APIに則って開発されたアプリケーションの動作は、外部仕様の変更がない限り保証されます。
逆にAPIに則って開発されていないアプリケーションは、バグの修正やアップデートなど、内部仕様の変更により動作をしなくなる場合があります。

既に開発されたAPIがない場合はAPIも自作する必要があります。Webサーバとの通信においては、Webサーバ側で用意している関数(インターフェース)をHTTP通信で利用します。

Web APIについては「Web開発に役立つAPI連携とは?利用するメリットや実装手順を紹介」に詳しくまとめましたので、合わせてご覧ください。

アプリケーションの開発

RailsにはAPIの開発をするための「APIモード」があり、API開発のための様々な機能が存在します。

また、Ruby on Railは、日本の開発現場や研究室でも、広く利用されているフレームワークです。そのため、日本語で書かれたウェブサイトや書籍も多く、学習しやすいというメリットもあります。

Ruby on Railsの特徴

Ruby on Railsは、Rubyで記述されたオープンソースのフレームワークです。Rubyは、日本人が開発したプログラミング言語としては初めて、IECによる国際規格に承認された言語です。Ruby、Ruby on Railsともに、日本を含めた世界中の地域で人気が高く、日本語の資料が豊富です。

Ruby on Railsは、他のフレームワークよりも簡潔に記述できるように設計されており、少ないコードで記述できます。また、Ruby on RailsはMVCアーキテクチャにより構成されています。

MVC(Model-View-Controller)とは、プログラムをModel、View、Controllerの3要素に分割し、ソフトウェア内部データをユーザから分離することで、ソフトウェアの保守性を向上させる考え方です。

また、MVCアーキテクチャは、機能ごとの独立性が高いため、複数人の開発でも分業しやすく、開発生産性も高いのが特徴です。

MVC説明
  • Model
    Controllerからのメッセージを受け取り、アプリケーションが扱うデータとその手続きに関しての処理を行います。データが変更された場合、Viewに表示の変更を指示します。Ruby on Railsでは、Active RecordによりModelを扱います。
  • View
    データをユーザが見やすいように提供します。Modelからの指示を受け、データの変更などをUIに反映します。
  • Controller
    ユーザからの入力をModelに引き渡します。ユーザはModelの内部データを直接変更するのではなく、Controllerを通じてModelに伝えます。これにより、ソフトウェアの保守性が向上します。Ruby on RailsではApplicationControllerクラスを利用します。

Ruby on Railsについては詳しく知りたい方は「Ruby on Railsとは?初心者でもRubyとの違いや特徴がわかる!」を合わせてご覧ください。

 

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

Rails APIの作成手順

ここからは、Ruby on RailのAPIプロジェクト作成の方法をご紹介します。

APIモードでRailsプロジェクトを作成

APIモードでRailsプロジェクトを作成します。

rails newの際に「–api」オプションを付与することで、AIPモードでRailsプロジェクトを作成できます。「project_name」の部分には、作成するAPIに応じたプロジェクト名を設定しましょう。

APIモードを使用することで、ViewやUIに関連するライブラリがインストールされません。また、Viewに関するファイルやGemも生成されません。

モデルとコントローラを作成

次にモデルとコントローラを作成します。MVCアーキテクチャで解説したとおり、モデルはデータを扱うため、データベースとやりとりを行います。そのため、モデルの作成は、それに対応するデータベーステーブルを合わせて作っておきます。RubyからSQLを操作するためにはマイグレーション機能をしようします。

そのためにマイグレーションファイルを作成します。

続いて、モデルとテーブルを作成します。

データベースに変更を反映するために下記のコマンドを実行します。

コントローラを生成するには下記のコマンドを実行します。

[ ]には、それぞれの状況に応じて、適切な名前を命名します。クラス名、モデル名は小文字はじまりの単数形で、テーブル名は小文字はじまりの複数形、コントローラ名はスネークケースの複数形で命名するのが一般的です。

jsonを確認

以下のコマンドで、一度マイグレーションを行ってから、railsのローカルサーバを立ち上げます。

http://localhost:3000/[model_name]

上記URLでローカルサーバに接続できます。

[model_name]の部分には、先に作成したモデル名を入力します。最初はデータが入っていないため、ローカルサーバには空の配列が表示されます。サーバにデータを追加して、内容を更新し、再度マイグレーションした後にもう一度ローカルサーバにアクセスします。入力したデータが追加されていれば、APIが正常に動作していることが確認できます。

Ruby on Railsとは?

 

Rails APIの作成における注意点

APIはソフトウェアが他のソフトウェアのサービスを利用するための、つまりソフトウェア同士の連携を行うためのインターフェースです。そのためバグが発生した場合、バグの原因箇所がAPIにあるのか、連携先のソフトウェアにあるのかがわからず、デバッグが難しくなります。

機能を追加する際には、特にバグが発生しやすいため注意が必要です。また、APIは運用を開始すると、仕様の変更が難しいため、通常のアプリケーション以上に設計を慎重に行う必要があります。拡張性などを考慮して、しっかり設計をしましょう。

設計の際には、どの機能が、どのようなデータ入力に対して、返すデータがどのようなものになるかを、詳細まで決めておく必要があります。

 

ここまで、Rails APIモードについて解説しました。Ruby on RailsはMVCアーキテクチャが特徴のフレームワークで、APIモードを利用することでView関連のファイルの作成を省くことができます。

APIモードではAPIの作成に便利な機能が充実しており、使い方を知っておくと、開発の効率を高めることができます。是非、Rails APIモードの使い方を知って、開発に役立てて下さい。