You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
概要 携わっている案件で作成しているRailsアプリケーションでは、JSONシリアライザとしてRablを採用していました。しかしどうもRablが遅い。 そこで、さまざまなシリアライザを比較してみることにしました。 世間では"ActiveModel Serializerが圧倒的に早いぞ!"というのをよく見るが、だいたいの検証記事はひとつのモデルのインスタンスをそのままシリアライズするような場合。 関連するモデルの情報を含めたり、モデルの属性から算出する値を含めたりする場合の性能比較は見つかりません。 そこで、より現実に即した状況で性能を比較検討してみましたというものです。。 全選手入場!! 比較対象は次のよっつ。 ActiveModel::Serializer Grape::Entity Jbuilder (個人的には一番書きやすくて好き) Rabl バージョンはそれぞれ active_mo
params :sample_params do optional :locale, type: String, desc: 'locale' requires :auth_token, type: String, desc: 'auth_token' requires :age, type: Integer, desc: 'age' requires :data, type: Array[String], desc: 'data' end しかし、このバリデーションには意外な欠点があって、 例えば値が空な時に発火するよう自作した俺俺エラーがあったとしても、 それがraiseする前にgrape validationのエラーがraiseしてしまう。 その為、grapeが発火させるエラーをいい感じで整形してレスポンスを返したい。 そんな時は、resque_fromを使ってあげよう。 modul
Google グループでは、オンライン フォーラムやメール ベースのグループを作成したり、こうしたフォーラムやグループに参加したりすることで、大勢のユーザーと情報の共有やディスカッションを行うことができます。
Railsとgrapeを使用してWebAPIを作成する。 grapeでは入力パラメータのバリデーションが事細かく用意されているが、なぜか「あるパラメータが 特定の値 の場合のみ、別のパラメータをチェックする」機能がない。そんなにレアケースだろうか? ちなみに、「あるパラメータが 存在する 場合のみ、別のパラメータをチェックする」機能はある。(givenブロック) バージョンはRuby(2.2), Rails(4.2), grape(0.13.0)で確認した。 例として、次のようなAPIがあったとする。dishが"nigiri"の場合のみamount_of_wasabiをチェックしたい。 与えられる正しい入力は{ "dish": "nigiri", "amount_of_wasabi": "M" }か{ "dish": "chirashi" }のような形を想定する。 考え方としては、特定の場
Oh hi mark! This is Part 1 in a multiple part series where we try to emancipate ourselves from Ruby on Rails by going back to basics! Part 2 is already out if you want to have a look at database-setup! But if you like your stories to have chronological order, I suggest you read this one first. IntroRequirementsWhat will be usedCome along for the ride!Starting real simpleStarting with grapeGlobal S
API 作成用のフレームワークである Grape で mass assignment 対策するにはいくつかありますが、そのうちで Rails 4 の strong_parameters を使用する方法、Grape 自身の declared を使用する方法を紹介します。 対象 Grape 0.3.0 Rails 3.2.12 strong_parameters 0.2.0 Rails 4 の strong_parameters を使用する方法 strong_parameters は Rails 4 で mass assignment 対策のためにデフォルトで追加される RubyGem です。使用方法については以下のサイトが参考になるでしょう。 Rails4.0に含まれる strong_parameters について - willnet.in Grape でも params があるので、Rai
ここ一年ほど Python でバックエンドエンジニアやってます。自分の勉強も兼ねて、デモ用 API を Ruby on Rails で作成 したので、その時の実装と参考にした記事をまとめます。 間違った内容を記述してしまうことがあるかもしれません。その際はコメント欄やツイッターなどで指摘していただけると助かります。 対象 Ruby on Rails で作成したアプリに API の実装を考えている方。 主に Grape と Devise という gem を使って API に認証機能を作成する方法について紹介します。 Ruby on Rails の環境構築や、フレームワークのメリット、API の仕組みなどについては紹介しません。 余談: 実装する背景と選択肢 Rails は API を提供するのみで、残りはすべてクライアントに委譲する、というのが目的です。 フロントエンドは AngularJS
振る舞いが把握しきれずどうにも気持ち悪いが、期待しない振る舞いを避ける方法は見つかったので一旦まとめ。 https://github.com/kyanny/playground/tree/gh-pages/grape-entity-collection-but-not-array Item に対する ItemEntity がある場合、 ItemEntity.new(item) と ItemEntity.represent(item) は同じ意味になる どちらの as_json to_json を呼んでもちゃんと期待するものを返す Item のコレクションとして Items がある場合、 ItemEntity.new(items).as_json も ItemEntity.represent(items).as_json も例外を吐く ItemEntity missing attribute
The shift is already happening. Over the past few years, you’ve invested resources in optimizing your APIs for human developers. Meanwhile, a...
ども、@kimihom です。2016年になりました。今年もよろしくお願いします。 前回は、API の周辺技術の選定と設計について書いた。 さて、昨年から書き続けている API 関連の話題だが、実際にコード書くところを細かく見ていきたいと思う。スタートさえうまくいけば後は追加していくだけなので、環境作りとコードの構成のところで参考になる部分があれば幸いだ。 環境構築 さて、 Grape の世界に飛び込もう。 Gemfile # api gem 'grape' gem 'grape-swagger' gem 'grape-swagger-rails' gem 'grape-entity' gem 'api-pagination' gem 'ruby-swagger' 前にもちょっと解説したが、それぞれのGemを解説しよう。 Grape : API 開発用のRuby DSL grape-ent
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く