我见过的一些示例rails / angularjs应用程序将API保留在自己的命名空间下。这些控制器只响应json。我不明白为什么这些需要自己的命名空间,因为控制器操作旨在能够响应不同的类型(html,js)。
答案 0 :(得分:2)
我保持API独立,因为我的控制器返回HTML。我知道从控制器返回不同的格式很容易,但是一旦你开始在控制器中获得很多不同的格式,它就会很快占用大量的空间并从实际的控制器逻辑中减去。
另一个共鸣,或许更重要的是版本控制。使用API,您通常会拥有可能无法控制的客户端。当您将它们命名为标准控制器之外的命名空间时,更容易为不同版本的API提供支持。这样,如果您有一个重大变化,您可以创建一个新版本,而不用担心可能尚未更新的旧客户
答案 1 :(得分:1)
保持这些分离的一个常见原因是身份验证。典型的UI控制器可能使用会话,但REST / API控制器通常不使用它。 api令牌很典型。