我有一个使用 AJAX 从服务器获取 JSON 数据的 Web 应用程序。它要求用户首先使用浏览器登录,以便设置 cookie。仅使用 GET
和 POST
动词,其中 GET
用于检索数据,而 POST
用于任何操作修改数据。
据我了解,REST 与上述方法的不同之处在于,用户身份验证信息随 每个 请求以及 PUT
和 DELETE
一起发送> 也使用动词。
我的问题是,如果端点只是用户的浏览器,那么 REST Web 服务相对于类似 RPC 的方法有什么好处?我可以理解当客户端未知时 REST 有什么好处,但是当我只使用 jQuery ajax 调用时,与类似 RPC 的方法相比,这些好处仍然值得吗?
最佳答案
REST 和 RPC 最大的区别之一是 REST 是关于资源的,而 RPC 更多的是关于 Action 的。例如,对于真正的 RESTful 服务,您永远不会调用像 http://domain.com/service/User/jason/add 这样的东西。或 http://domain.com/service/User/addUser?username=jason .使用 RESTful 服务,您只需要引用 URL 中的资源,然后使用 HTTP 动词和请求正文定义如何处理该资源。因此,对 http:/domain.com/service/jason 的 GET 请求应返回有关资源(jason 用户)的信息。你可以更具体地说http://domain.com/service/user/jason但结果应该是一样的。如果您要添加一个名为 jason 的用户,您将使用完全相同的 URL http://domain.com/service/user/jason但是您将使用 PUT 动词,并且请求的正文将包含其他数据。要删除 jason 资源,您将再次使用完全相同的 URL (http://domain.com/service/user/jason) 并使用 DELETE 动词。要更新,您将使用 POST 动词。
REST 非常适合您打算供其他开发人员使用的面向公众的 API。它们可以做得非常标准,这样它们就不需要大量关于使用服务的现有知识。没有 WSDL 调用等。由于无状态,它还可以使它们在部分网络故障期间更加稳定。
根据您的描述,我认为您不需要真正的 RESTful 服务。但是您可能需要考虑,如果您需要更标准的 API。我为一个仅用于内部使用的项目创建了一个 REST 服务,但那是因为我打算从潜在的数十个其他服务以及将来可能从其他开发人员那里访问该服务。所以即使一开始我只是在几个项目中使用它,最终目标还是需要一个更标准的界面。
关于jquery - REST Web 服务与类似 RPC 的服务有何区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410040/