我们有一个混合的html和api应用程序。我们选择将标准html部分拆分为常规控制器,并将api放入api_CONTROLLER_NAME。所以我们有一个items_controller.rb和一个api_items_controller.rb。我们使用jquery发布更新和创建项目。但是,我们发布到单个端点/ api / items并根据params中是否有id确定是应该创建新项目还是应该更新项目。我对此感到非常不舒服,并认为我们应该发布创建并进行更新,但由于浏览器支持在put和delete方面是不合理的,因此我们应该这样做。
所以我有两个问题:(1)两个控制器之间的分裂设计不好吗?或者我们应该让它通过一个控制器?我个人觉得两个控制器很好。 (2)在单个方法中创建和更新是否正确或者我们应该将它们拆分出去,是否有关于浏览器支持的争论有些虚假?我们只需要支持IE8及以上版本。
答案 0 :(得分:1)
1)我通常在自己的命名空间中编写我的api代码,因为它的逻辑与核心逻辑不同。所以拥有不同的控制器对我来说听起来不错
2)如果您声称使用REST,请使用REST。因此拆分创建和更新。不要担心浏览器。仅供参考,Rails本身欺骗了PUT,并在表格中隐藏了一个字段(_method
)