Rails で swagger-blocks と fastjson_api を組み合わせる (API定義編)

Rails プロジェクトで クライアント向けの APIClient を自動生成するときの構成を試してみた. Swagger で記述した API 定義からコード生成する例はちらほら見かけるが,Netflix 製の fast_jsonapi を使った記事は見かけなかったので,まとめておく. 完成版のソースコードはこちら 👉 tanakaworld/swagger-blocks-fastjson-api TL;DR; Part1: API定義編 (本記事) Backend は Rails で API を実装 JSON シリアライザとして,Netflix 製の fastjson_api API 定義は swagger-blocks を使用 Part2: コード生成編 (作成中) openapi-generator で TypeScript の APIClient を自動生成 Part3: 自動テスト編 (作成中) RSpec で Reqeuests 自動テスト committee-rails で Swagger 定義との整合性チェック Scaffold Books 書籍情報の CRUD を題材に考える. Rails 6.0.0.beta3 を使った. scaffold で Books を生成し,画像アップロードは Active Storage を使う....

April 21, 2019

Rails5 / webpacker を heroku で動かす

Rails の開発環境をサクッ構築するために heroku を使ったときのメモ. 環境 Rails 5.1.6 Ruby 2.4.x MySQL Webpacker つかう Heroku CLI $ brew install heroku # if already installed $ brew upgrade heroku $ brew -v Heroku 設定 herokuでアプリケーション作成 クレカ登録(後述の MySQL 向けプラグインを追加するために必要.Free プランを選べば課金はされない) プラグイン追加 Configure Add-ons 「Clear DB」で検索して選択 -> Provision Login heroku に登録している email, password でログインする. $ heroku login DB のセットアップ 先述の ClearDB をプラグインとして追加しているとそれ用の環境変数が設定される. $ heroku config -a <your-app-name> === your-app-name Config Vars CLEARDB_DATABASE_URL: mysql://xxxxxxxxxxxxxx:xxxxxxxxxx@xxxxxxxxxxxxxxxx....

November 25, 2018

How fast dev.to is?

社内勉強会で dev.to について話した. mizuchi さんの なぜ dev.to がこんなにも速く、こんなにも自分にとって感動的なのか という記事を皮切りに,2017 年に日本でもバズっていた Insanely Fast な Web サービス.今年の 8 月に OSS 化 されソースコード読んでたら面白そうだったので,話してみる運びになった. 普段 Rails 開発する上で annict のソースコードを参考にさせてもらっているが,dev.to のソースコードもとても参考になりそうだった. 普段は Keynote でスライドつくっているが,今回は Google Slides でやってみた.Google Slides よい.内容にもよるが,凝ったインタラクションやアニメーションしないなら Google Slides で事足りる感があった.デフォルトのテンプレートを使い,マスタで色味だけ調整した.マスタは保存はできないが,インポートすることはできるので他のスライドでも使うことができる....

October 23, 2018

dev.to をローカルで動かす

2018/08/08 に dev.to が OSS 化された. dev.to is now open source とりあえずローカルで動かすまでにやったことのメモ. Getting Started Getting Started が充実している.ほぼその通りに進めれば問題ない.Ruby は最新版が必要,DB は PostgreSQL.長年 Rails 触っているが地味に PostgreSQL 使ったことがなかった. $ ruby -v => Ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17] $ brew install postgresql $ postgres -V => postgres (PostgreSQL) 10.5 $ pg_ctl -D /usr/local/var/postgres start # Stop $ pg_ctl -D /usr/local/var/postgres stop $ gem install bundler $ gem install foreman foreman は複数プロセスをまとめて管理できるツール. ローカル実行時は Rails サーバ (puma) Webpacker (webpackのラッパー,webpack の実行と hot-reload が走る) Job (DelayedJob) が実行される....

September 3, 2018

Rails でユーザー毎に OGP 画像を自動生成するハンズオン

ユーザーの詳細ページがある Web アプリケーションで,ユーザー毎に OGP 画像を自動生成し表示させてみる. 完成版のソースコードはこちら 👉 rails_ogp_generator_sample. 前提条件 Ruby 2.4.2 Rails 5.1.6 RMagic 2.16.0 Gem 画像生成で rmagic,アップロードに carrierwave を使う. # Gemfile gem 'rmagick' gem 'carrierwave' $ bundle install User の Scaffold を作成 name と avatar を持つユーザーの Scaffold を作成する. $ bundle exec rails g scaffold User name:string avatar:text # db/migrate/20180720144053_create_users.rb class CreateUsers < ActiveRecord::Migration[5.1] def change create_table :users do |t| t.string :name, null: false t.text :avatar t.timestamps end end end $ bundle exec rails db:migrate UserOgpImage モデルを作成 User の OGP 画像を保持するモデルを作成する....

August 8, 2018