0

API も提供する Web アプリケーションがあります。API はかなり単純なので、respond_to ブロックで処理し、要求があれば json を返すだけです。ここで、API をバージョン管理したいと考えています。私はバージョン主義者の宝石を見ていました。これは、config/routes.rb で api_version メソッドを使用して、API バージョンに基づいてルートを変更することについて言及しています。ルートは同じだと思うので、これはわかりませんが、応答の動作は変わります。

私の質問は、Web 部分と API 部分に別々のコントローラーが必要ですか? また、API 用に別の名前空間が必要ですか? それとも、今の状態を維持する方法はありますか?

4

1 に答える 1

0

API を提供するときに、別の方法で行いたいことがいくつかあります。その 1 つは、既存のクライアントを壊すことなく新しいバージョンを追加して API を拡張できるように、API バージョンを設定する機能です。API が非常に単純な場合は、バージョンを含むルートの 2 番目のセットを提供することでこれを実現できます。そのために versionist を使用できます。ただし、バージョンを追加する必要がある場合、最も簡単な解決策 (および問題を適切に分離する方法) は、別のコントローラーのセットを保持し、コードの重複がないようにそれらを薄く保つことです。これにより、API に追加の gem (RABL、JBuilder、rocketpants など) を使用できるようになる場合があります。それぞれに Railscast があります。API 構築の背景を理解するためにそれらを視聴することをお勧めします。

于 2013-01-20T19:30:15.477 に答える