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