gem 'fast_jsonapi'を試してみる
fast_jsonapiとは
Netflixが提供しているgemで、JSONのserializerです。
This project is no longer maintained!!!! ⚠️ってなってるけど使っていいのかな…?
公式に沿って進めていきます。
serializerとは?
シリアライズ(serialize)とは、プログラミングでオプジェクト化されたデータを、ファイルやストレージに保存したり、ネットワークで送受信したりできるような形に変換することを言います。
逆に、シリアライズされたデータをプログラミングで扱えるようにオブジェクトの型に復元することをデシリアライズ(deserialize)といいます。
だいたいのプログラミング言語にはあらかじめシリアライズの仕組みが用意されています。たとえばRuby では Marshal という独自のクラスが用意されているほか、JSON形式やYAML形式でのシリアライズも簡単に行うことができます。
Installation
gem 'fast_jsonapi'
bundle install
rails g serializer Article(モデル名) title contents status(カラム名を列挙)
Usage
さっきのコマンドで生成されるserializerのファイルに追記
class ArticleSerializer include FastJsonapi::ObjectSerializer attributes :title, :contents, :status # 追記 belongs_to :user # モデルの設定に合わす end
コントローラー側で呼び出す 今回は、記事一覧を呼び出してみます。
class ArticlesController < BaseController def index articles = Article.all json_string = ArticleSerializer.new(articles).serialized_json render json: json_string end end
json_string = ArticleSerializer.new(articles).serialized_json
の部分は、一覧の取得でもnewです。
何を思ったか、allに変えてエラーを出しました。。
postmanで見てみる
ちゃんとJSON形式でデータを取得できました