REST服务应用程序和单独的前端——是否是一个好主意?

3

我正在考虑使用RESTful web服务构建一个应用程序。我的想法是将应用程序的RESTful(json等)部分作为独立的部分构建,然后将前端(例如html/css/js等)作为该服务的客户端,但不通过js,我希望网页可以在没有js的情况下工作,因此可能使用类似LWP的东西来进行调用。基本上结果是2个独立的应用程序。这是个好主意吗?坏主意?我意识到这在某种程度上是主观的。

2个回答

4

我认为这是个好主意。

这意味着最终你会有一个完整的API,至少具备了所有本地图形界面的功能。因此,你不会在图形界面中找不到任何可用作为服务的功能。

  • 你将避免一些重复的工作,因为你所做的工作以确保图形界面正常运行也将反映在Web服务中,因为它们使用同样的函数。修复一个bug就会同时修复两者。

  • 这也意味着有一致性。

  • 自动化测试可能更容易。

  • 保持模块化特别是在开源中很重要,因为这使得其他人更容易编写单独的图形界面来使用你的服务,甚至修改你的服务而使用同一图形界面。


0

我预计在这种类型的架构中可能会遇到的主要问题是,你构建的可能不是你想要构建的东西。很有可能这个应用的 RESTful 部分将是前端,它提供文本/HTML 并带有链接,以便客户端发现你的应用。

而你认为是 RESTful Web 服务的部分,很可能并非真正符合 RESTful 的要求。你是否打算在 Web 服务的响应中嵌入链接?你是否会使用比 application/json 或 application/xml 更具语义意义的媒体类型来传递数据?如果没有,那么你的 Web 服务就不是 RESTful 的。

我并不是说你正在做错事,我只是说你可能没有做成你认为自己正在做的事情,因此在使用 RESTful 约束指导你时要小心,因为你很可能会发现难以应用它们。


我只是提到了json和xml等作为确保清晰度的方式。我考虑这样做的部分原因是我发现在用户端创建完整的restful应用程序非常困难,主要是由于浏览器限制而不是表示形式。 - xenoterracide
@xenoterracide 网页浏览器是迄今为止最符合REST原则的客户端。你遇到了哪些浏览器限制导致问题? - Darrel Miller
表单,虽然我相信HTML5已经在表单中添加了PUT和DELETE的支持,但我不确定任何浏览器是否已经实现了这一点。我也发现由于表单缺乏“可皮肤化”的功能而出现问题,导致人们使用图像和链接(必须是RPC风格)或JavaScript来美化它们,因为浏览器不允许你美化表单元素。 - xenoterracide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接