🕌

RailsのAPIモードで画面(View)を作る

2023/09/27に公開

結論

Railsでコントローラーを作成すると ApplicationController を継承しています。それを ActionController::Base を継承するように変更するだけです。

class ArticlesController < ApplicationController
end

class ArticlesController < ActionController::Base
end

※APIモードで作成した場合、 ApplicationControllerActionController::API を継承するようになっています。

class ApplicationController < ActionController::API
end

注意点

APIモードでRailsアプリを作成すると、アセットやCookieなどのブラウザに関連する機構が追加されなくなるため、リッチなスタイルやJavaScriptを使った画面を作るのは難しくなります。

更にRailsにデフォルトで組み込まれるCSRF対策の機能も除外されるため、ユーザーの目に触れるフォームなどに使用するのも危険でしょう。

調べてみると form_with でPUTが使えなかったりと、色々と問題点もあるようなので、想定した画面を作ることができるかを一度調査してから使用することをお勧めします。

https://qiita.com/takayuki-nakamura/items/dbf058ac072833f0d279

使えそうなユースケース

で、これいつ使うの?と思われる方も多いかもしれません。個人的にも諸手を挙げてお勧めできるものではないですが、リソースの少ないスタートアップでは時間を節約するために下記のようなケースで使用できるかもしれません。

  • 一時的に静的なページを配置しておきたい
  • 特定の機能に絞った社内向けの管理画面を最速で作りたい

いずれのケースにしても永続的ではなく一時的な対応になることは変わりないとは思うので、使い所はよく考えて使うようにしましょう!

Discussion