这似乎是一个基本问题,但经过大量的搜索,我似乎无法找到一个直截了当的解释:
如果我正在构建一个主要通过Web浏览器访问的Web应用程序,但是它也会以RESTful方式支持某些API请求,那么两者之间是否存在很大程度的分离?
一方面,似乎大量的功能是相同的,在不同的视图中呈现相同的数据(HTML与XML / JSON)。但另一方面,我需要向浏览器提供一些不太适合RESTful方法的东西:如何获取空表单以创建资源的新实例以及如何获取预先填充的表单编辑现有资源。
这两种不同的方法是否可以通过不同的控制器进行访问?同一控制器中的不同方法?与视图类型的开关完全相同的方法?
答案 0 :(得分:0)
您的核心控制器不必更改,但这并不意味着您不能仅仅为了支持UI而添加一些额外的控制器。例如,您拥有的两个Form示例都可以是Web API的唯一。您的条目URI当然可以链接到机器和用户界面的那些页面,只是不要指望机器用户实际使用它们。
此外,如果您的计算机客户端只是XML / JSON,那么这些表示根本不需要这些表单,因为他们不会使用它们,并且它们不能在JSON / XML中“工作”无论如何。您可以通过内容协商来管理它。