Let's write β

プログラミング中にできたことか、思ったこととか

Rails

モバイルクライアント向けRailsAPIサーバーのエラーレスポンス設計

RFC 7807で提唱されているProblem Details形式を参考に、Rails APIサーバーからモバイルクライアント向けの統一エラーフォーマットを設計しました

rspecでCSRFチェックのスキップを確認する

rspecのテストケースで、CSRFトークンの検証が正しくスキップされているかを確認できるようにしました。

SwaggerUIをRailsから配信し、AWS ALB上でGoogleのOAuth認証をかけてチーム内で共有した

API開発をするサーバサイドとAPIを利用するクライアントサイドというチーム構成でプロダクト開発をしていくにあたり、クライアントサイドがAPIの開発完了を待つことなくつなぎこみの準備をすすめておくためには、クライアントサイドとサーバサイドで事前にAP…

ActiveStorageの利用時のcontent_typeが設定される流れと信頼性を調査した

背景 サービスでActiveStorageを利用するにあたり、画像ファイルのみに絞りたいであったり、特定のファイルタイプにのみ絞りたいなどの要求がありました。 多くのサンプルコードで、ActiveStorageでアタッチされているファイルの<field>.blob.content_typeをホワイ</field>…

rubocop-railsのfind_by_*系メソッドの自動修正をstaticに定義した一部のメソッドの上で無効にする

Railsで開発するにあたって、rubocop-railsをLinterとして利用しており、 自動修正機能を適用したときにエラーに繋ってしまったのでメモしておきます。 背景 Railsではfind_by_idやfind_by_nameのように、ActiveModelのカラム名を利用して検索できるメソッド…

Rails5 + MySQLでArmgとDBコネクタの拡張を組み合わせて位置情報を扱う

背景 サービスで位置情報を色々なところで扱うのですが MySQLで扱うためには当然Geometry型のカラムを用意してActiveRecordとつなぐ必要があり PostGisを使っているケースが多く、MySQL周りのライブラリはあまり活発ではありませんでした。 RGeoのMySQL2コネ…

最小構成サーバーでは負荷に耐えられなくなってきたので、SidekiqのJob処理を別サーバーに移動した

背景 調査手順 CPU負荷の確認 sarでCPU負荷の内訳を確認 topで負荷の高いユーザープロセスの概要を把握 psでユーザープロセスの詳細を把握 対応手順 Job処理をバッチサーバーに移動 ソースコードをバッチサーバにもデプロイ Wheneverによるcrontabの登録をバ…