是否为REST API使用单独的控制器?

Mar*_*rco 5 rest grails groovy web-services

我们正在为我们的应用程序规划一个REST api,并且正在尝试决定是否应该为REST功能实现单独的控制器.

我们可以在当前的控制器中使用withFormat {},但在不同的控制器中分离REST功能感觉有点干净.

通过这种方式,我们可以从当前控制器中单独构建API,甚至可以将REST控制器转换为其他应用程序等.

有关这个问题的任何想法?什么是最佳实践的真实世界经验?

Rub*_*ben 4

我们最近面临同样的决定,我们决定为 REST API 采用单独的控制器。

单独控制器的优点包括更清晰的控制器操作以及以后支持不同版本的 REST API 的可能性。

我们还希望保留在单独的服务器实例上托管 REST API 的选项。这些服务器将使用完全相同的 .war,但功能切换的配置设置不同。

单独控制器的缺点可能是控制器代码的干燥。尽管这应该是有限的,但恕我直言,您应该使控制器尽可能精简,并将共享逻辑提取到 Grails 服务或帮助程序类。