REST是GUI web应用程序的好选择吗?
基于GUI的web应用程序可以构建在GUI组件、有状态框架(如Wicket)上,也可以以RESTful、无状态的方式构建,GUI状态仅在客户端上 从技术角度来看,REST看起来是正确的方法,因为它充分利用了http的强大功能,并带来了高度可扩展的应用程序。但这是有代价的。在许多情况下,复杂的GUI将需要客户端上的JavaScript应用程序。如果应该在客户端上维护状态,则必须保持在同一页面上,只重新加载部分。或者你必须使用隐藏的iframe的技巧。有时,服务器上有类似购物车的伪资源,以支持RESTful设计。您必须保持多步骤对话的中间状态,等等REST是GUI web应用程序的好选择吗?,rest,wicket,web-frameworks,Rest,Wicket,Web Frameworks,基于GUI的web应用程序可以构建在GUI组件、有状态框架(如Wicket)上,也可以以RESTful、无状态的方式构建,GUI状态仅在客户端上 从技术角度来看,REST看起来是正确的方法,因为它充分利用了http的强大功能,并带来了高度可扩展的应用程序。但这是有代价的。在许多情况下,复杂的GUI将需要客户端上的JavaScript应用程序。如果应该在客户端上维护状态,则必须保持在同一页面上,只重新加载部分。或者你必须使用隐藏的iframe的技巧。有时,服务器上有类似购物车的伪资源,以支持RES
如果我环顾四周,很少有RESTful GUI Web应用程序。这是因为历史原因还是RESTful设计在常见场景中没有效率?我认为RESTful GUI设计非常有效率。无需额外工作,您就可以利用许多功能来支持角落案例,例如用户重新提交信息、浏览器历史记录(向后和向前)多个选项卡和窗口。如果我没有弄错的话,这个网站使用的是RESTful UI。REST是通过观察成功的web应用程序(GUI和M2M)的特性定义的。因此,根据定义,它应该适用于这些情况 我还注意到你问了一个关于的问题。您可能有兴趣知道REST也是构建桌面客户端应用程序的优秀体系结构。我已经编写了一些桌面客户端,它们从REST服务器获取所有数据 如果我环顾四周,几乎没有 RESTful GUI Web应用程序。这是吗 因为历史原因或者是 RESTful设计通常是无效的 情景 我的答案是主观的,但在我看来,有两个主要障碍阻碍了RESTful的发展:
- 可扩展性好:每个用户的会话信息不会存储在稀缺的服务器内存中
- 更少的在线请求/响应数据:不完整发送每页,不发送会话ID或
sViewState
- 干净的可重用URL:提供一个干净的、解耦的服务器API,可以支持多个UI
- 纯:严格遵守HTTP规范(GET不会导致任何副作用等)
- 客户端体验:异步事务更丰富、响应更快
- RESTful URL更容易受到XSS攻击,因此确实需要谨慎的安全性
- 复杂的JavaScript在开发、维护和调试方面可能具有挑战性(使用OOJavaScript有助于解决这一问题)
- 需要向用户指示异步请求正在后台处理
- 需要更多的客户端故障处理逻辑
- 与服务器端相比,传统上客户端开发的框架和IDE工具较弱(这一点正在慢慢改善)