gem 'fast_jsonapi'

fast_jsonapiとは

Netflixが提供しているgemで、JSONのserializerです。jsonのserializerとは、jsonを生成する仕組みのことです。

シリアライズ(serialize)とは、プログラミングでオプジェクト化されたデータを、ファイルやストレージに保存したり、ネットワークで送受信したりできるような形に変換することを言います。


実装

gem 'fast_jsonapi'
rails g serializer Article(モデル名) title contents status(カラム名を列挙)

article_serializer.rb

class ArticleSerializer
  include FastJsonapi::ObjectSerializer
  attributes :title, :contents, :status

# モデルの設定に合わせる
  belongs_to :user
end

article.rb

class Article < ApplicationRecord
  belongs_to :user
  has_many :comments, dependent: :destroy

  enum status: { draft: 0, in_review: 10, published: 20, archived: 30 }
end

コントローラー側で呼び出す 今回は、記事一覧を呼び出してみます。

controllers/api/v1/articles_controller.rb

module Api
  module V1
    class ArticlesController < BaseController
      def index
        articles = Article.all
        json_string = ArticleSerializer.new(articles).serialized_json
        render json: json_string
      end
    end
  end
end


github.com