📝

AlbaをRailsに導入する時に使えるメモ

2023/12/29に公開

今までRailsのAPI関連のGemを一通り触ってきました。その中でも最近気に入っている、シンプルかつ軽量なAlbaを導入するためのメモを残しておきます。

前提条件

RailsをアプリやWebのAPIサーバーとして利用をしていて、AlbaはそのAPIレスポンスで使用するResourceの定義に使用しています。

設定

Gemfileの編集

いつも通りのGemfile追記 & bundle installをしてください。

gem 'alba'

config/initializers/alba.rbの作成

設定用のファイルを作成し、以下を記述

Alba.backend = :active_support

使い方

本家のサイトを見れば大体わかりますが、まずapp/resourcesディレクトリを作成してください。その中にResourceファイルを作成していく流れです。基本的にModelごとに作っていって、あとは状況に応じてカスタマイズしたものを作っていく運用をしています。

基本形は公式サイトにも載っていますが以下のようなフォーマットとなります。

class UserResource
  include Alba::Resource

  root_key :user

  attributes :id, :name

  attribute :name_with_email do |resource|
    "#{resource.name}: #{resource.email}"
  end
end

これを使いたいところでで以下のように呼び出します。

# userはmodelのインスタンス など
UserResource.new(user).serialize

あとはResourceファイルの定義の内容については以下のような感じに使い分けてください。

  • root_keyにはModel名
  • attributesにはカラム名
  • attributeには何かカスタマイズしたいレスポンスなど

Discussion