这似乎是一个基本问题,但经过大量搜索后,我似乎找不到直接的解释:
如果我正在构建一个主要通过网络浏览器访问的网络应用程序,但它也将以 RESTful 方式支持一些 API 请求,那么两者之间是否应该有很大程度的分离?
一方面,似乎很多功能都是相同的,相同的数据在不同的 View 中呈现(HTML 与 XML/JSON)。但另一方面,我需要向浏览器展示某些不太适合 RESTful 方法的东西:如何获取空表单以创建资源的新实例以及如何获取预填充表单编辑现有资源。
这两种不同的系统访问方法是否应该通过不同的 Controller 进行传输?同一 Controller 中的不同方法?与 View 类型的开关完全相同的方法?
最佳答案
您的核心 Controller 不必更改,但这并不意味着您不能拥有一些额外的 Controller 来专门支持您的 UI。例如,您拥有的两个表单示例对于 Web API 来说都是唯一的。您的入口 URI 当然可以链接到机器和用户界面的那些页面,只是不要指望机器用户实际使用它们。
此外,如果您的机器客户端只是简单的 XML/JSON,那么这些表示根本不需要这些表单链接,因为它们不会使用它们,并且它们不会在 JSON/XML 中“工作”反正。您可以通过内容协商来管理它。
关于rest - 我应该将 RESTful API Controller 与 "regular" Controller 分开吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2695376/