我developming使用Rails 4.2看起来像这样的JSON API API端点的REST风格的设计:Rails的干着过滤器
GET api/v1/car => app/controller/api/v1/car_controller#index
GET api/v1/car/:id/installment => app/controller/api/v1/carresources/installment_controller#index
现在我想有过滤器扩展这些端点。
api/v1/carresources/installment#index
:
- 在特定的时间段
- 所有分期付款特定汽车的付款方式(现金,手机钱包,< - 移动支付供应商)所有分期付款特定汽车
api/v1/car#index
:
- 台全车因地区
- 所有汽车由经销商通过贷款模式
我实现的方式
app/controller/api/v1/car_controller.rb
def index
res = []
if params.key?('start_date') and parms.key?('end_date')
res = Car.index_period(params['start_date'], params['stop_date']
elsif params.key?('loanstructure')
res = Car.index_loan_strucuture(params['loan_strucuture'])
....
end
end
这是工作,但不是这样一个很好的解决方案,把这些if
- “坟墓”背后完全语义上不同的逻辑。 这将有可能为每个过滤器创建一个新的端点,但我感觉这使得路由和控制器结构变得庞大。
我也想,如果条款,以避免这些,因为这也是对用户角色怎么回事哪位我跳过显示一些授权 - 这也与if clauses
做是否有另一种聪明的办法,还是应该我花了一每个过滤器的额外路由,然后我需要复制整个授权结构。 非常感谢提前 非常感谢提前