我正在考虑使用RESTful web服务构建一个应用程序。我的想法是将应用程序的RESTful(json等)部分作为独立的部分构建,然后将前端(例如html/css/js等)作为该服务的客户端,但不通过js,我希望网页可以在没有js的情况下工作,因此可能使用类似LWP的东西来进行调用。基本上结果是2个独立的应用程序。这是个好主意吗?坏主意?我意识到这在某种程度上是主观的。
我正在考虑使用RESTful web服务构建一个应用程序。我的想法是将应用程序的RESTful(json等)部分作为独立的部分构建,然后将前端(例如html/css/js等)作为该服务的客户端,但不通过js,我希望网页可以在没有js的情况下工作,因此可能使用类似LWP的东西来进行调用。基本上结果是2个独立的应用程序。这是个好主意吗?坏主意?我意识到这在某种程度上是主观的。
我认为这是个好主意。
这意味着最终你会有一个完整的API,至少具备了所有本地图形界面的功能。因此,你不会在图形界面中找不到任何可用作为服务的功能。
你将避免一些重复的工作,因为你所做的工作以确保图形界面正常运行也将反映在Web服务中,因为它们使用同样的函数。修复一个bug就会同时修复两者。
这也意味着有一致性。
自动化测试可能更容易。
保持模块化特别是在开源中很重要,因为这使得其他人更容易编写单独的图形界面来使用你的服务,甚至修改你的服务而使用同一图形界面。
我预计在这种类型的架构中可能会遇到的主要问题是,你构建的可能不是你想要构建的东西。很有可能这个应用的 RESTful 部分将是前端,它提供文本/HTML 并带有链接,以便客户端发现你的应用。
而你认为是 RESTful Web 服务的部分,很可能并非真正符合 RESTful 的要求。你是否打算在 Web 服务的响应中嵌入链接?你是否会使用比 application/json 或 application/xml 更具语义意义的媒体类型来传递数据?如果没有,那么你的 Web 服务就不是 RESTful 的。
我并不是说你正在做错事,我只是说你可能没有做成你认为自己正在做的事情,因此在使用 RESTful 约束指导你时要小心,因为你很可能会发现难以应用它们。