0

RESTfulAPIを使用していくつかのXMLデータを返すWebサービスがあります。完全に異なるコントローラーコードを使用して新しいデータベースを実装します。これは、いつか有効になります。ただし、古いデータに対するWS呼び出しでは、引き続き古いDBを使用する必要があります。

現在、URLの一部に日付が含まれています。コントローラの最初でこれを解析してから、古い関数または新しい関数に移ります。

def web_service_action

  #shared code between old and new methods
  @some_instance_variables = ...

  # check the date and fork appropriately
  if use_new?
    web_service_action_new
  else
    web_service_action_old
  end

  def use_new?
    date_match = params[:id_string].match(/^.*([0-9]{8})$/)
    matched_date = date_match[1]
    date = Time.local(date_match[0,4],date_match[4,2],date_match[6,2])
    if date >= DATE_CONSTANT
      return true
    else
      return false
    end  
  end

end

どういうわけか、before_filterまたはroutesファイルの条件付きでこれを行う賢い方法があるかどうか疑問に思っていますか?

追加情報:古いバージョンのRails(2.3.x)を使用していますが、新しい方法は完全な書き換えであり、段階的な変更ではありません。

4

1 に答える 1

0

まず、RESTAPIバージョニングでRyanBatesのrailscastを視聴することをお勧めします。彼は、BCを維持しながらアプリケーションのAPI変更を管理する方法を非常によく説明しています。

于 2012-07-09T22:26:22.960 に答える