REST 服务,UI 和服务分离

REST services, separation of UI and services

我正在尝试了解 RESTful 服务。在我正在观看的本教程中,讲师陈述如下:

REST services keeps things very defined between what is UI vs what is Services.

您是否知道我可以查看的现有示例以更好地直观理解?

如果没有其嵌入的上下文,可能无法准确解释来自较大摘录的单个句子的含义。但无论如何我都会去的。我怀疑其中涉及炒作元素 - 不能保证 Restful API 比非 restful API 设计得更好,所以真的没有保证它将更好地执行我们都希望看到的 UI 逻辑和业务逻辑之间的分离。

但是,Rest 的文档中心主义、对无状态的关注以及对统一 API do 的使用有助于在 UI(网络应用程序或移动应用程序)和服务器。

其他形式的面向服务的体系结构,例如 RMI 或 SOAP,往往更侧重于提供一种访问远程 API 的方法,就好像 它是本地 - 本质上隐藏了一个事实,即正在发生大量网络负载来实现这一点。结果通常是非常细粒度的,虽然非常强大,API 需要嵌入客户端应用程序中的复杂逻辑(业务 逻辑)才能正确使用。这些协议可能非常繁琐且网络效率低下,因为很少关注通过网络传输的数据。

Restful API 以文档为中心,倾向于将 UI 设计人员推向编辑这些文档的方向 - 将 UI 的重点放在演示上并将逻辑留给用户或后端服务。

Rest 的统一界面有助于 API 专注于处理文档 - 每个资源都以相同的方式访问,添加自定义响应代码的余地很小 'interpreted'客户以某种方式。出于这个原因,HTTP 是构建 Restful API 的良好协议 - 主要动词是 GET、PUT、POST 和 DELETE。

同样,Rest 的无状态性促使 UI 专注于它拥有的数据以及它应该如何,而不是为用户提供任何类型的中间转换或缓存层。 UI 除了必须向用户呈现的文档外,没有更多的信息 - 简单明了。

我猜你问题的真正核心是 "why should it be like that"?答案是它使事情变得简单和灵活。表示逻辑(例如用户关心的语言、时区或数字格式)不应与业务逻辑(用户过去购买了多少 'foo' 小部件,他们真的想要 'bar' 小部件,因为很多购买 'foo' 小部件的人也想要 'bar' 个)。这两类事物有不同的改变原因和不同类型的擅长使用底层代码的人。