案1 Userのみを API化
案2 ユーザー認証をOAuth化
補足: Rails Engineとは?
Railsアプリケーションを再利用可能にするように、
本体にマウント可能にする
↑↓
プラグイン、gem
・Rackミドルウェアである
・routes, task等を独自に記述できる
などなど
実装リスクを洗い出し、工数見積を出すため
案2・案3でプロトタイプ実装を試みる
結果
案2:
OAuth providerを作るgem(doorkeeper)を使ってできた
案3:
ActiveRecord establish_connectionでDBを変えれた
複数DBは、本体でテストも書かれているので大丈夫そう
では、どちらにするか?
工数はあまり変わらなさそう・・
案2 OAuth化(HTTPレイヤ)
・OAuth Provider化しても外部公開の予定はない
=要件に対して、オーバースペック
案3 Rails Engine化(アプリケーションレイヤ)
・応用範囲が広そう
→共通マスタの切り出し、など
結論:案3でやってみよう!
ということで、engineを現在作成中!
→(追記)できました
なるべく使っていることを意識しないように隠蔽!
=アプリケーションの改修コストを減らす
(実際のAPI)
将来的なengineの全体像
認証ロジックの他に、
・共通マスタ
・共通ライブラリ
・ユーザーのロール(権限)管理
などを持たせる予定
「こういうやり方があるよ!」などの
ご意見があったらぜひお聞かせください!”