代码之家  ›  专栏  ›  技术社区  ›  keithjgrant

我应该将RESTfulAPI控制器与“常规”控制器分开吗?

  •  3
  • keithjgrant  · 技术社区  · 14 年前

    这似乎是一个基本的问题,但经过大量的搜索,我似乎找不到一个简单的解释:

    如果我正在构建一个将主要通过Web浏览器访问的Web应用程序,但这也将以一种宁静的方式支持一些API请求,那么这两者之间是否应该有很大的分离呢?

    一方面,大量功能似乎是相同的,在不同的视图中呈现相同的数据(HTML与XML/JSON)。但另一方面,我需要向浏览器展示一些不太适合RESTful方法的东西:如何获取空表单以创建资源的新实例,以及如何获取预填充表单以编辑现有资源。

    这两种不同的访问系统的方法是通过漏斗通过不同的控制器吗?同一控制器中的不同方法?使用视图类型开关的方法完全相同?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Will Hartung    14 年前

    您的核心控制器不需要更改,但这并不意味着您不能只需要一些额外的控制器来支持您的UI。例如,您拥有的两个表单示例对于Web API都是唯一的。您的条目uri当然可以为机器和用户界面提供到这些页面的链接,只是不要期望机器用户实际使用它们。

    另外,如果您的机器客户机只是XML/JSON,那么这些表示完全不需要那些到表单的链接,因为它们不会使用它们,而且它们在JSON/XML中也不会“工作”。您可以通过内容协商来管理它。