REST API和普通API(打印JSON响应)有什么区别?
答案 0 :(得分:16)
完全没有区别。 REST描述了一种与HTTP服务器交互的方式,而不是服务器应该返回的响应方式。大多数Web应用程序通过POST或GET请求与服务器端进行交互,并提供在POST表单提交或GET查询字符串中完成请求所需的任何其他信息。因此,如果您想从服务器中删除某些内容,他们通常会使用包含指定资源的数据的表单以及删除它的指令进行POST。
但是,HTTP实现除GET或POST之外的方法(也称为动词)。它还实现了HEAD(返回你为GET做的相同的头,但是没有响应体),PUT(获取请求体并将其内容存储在PUT请求的任何URL中),以及DELETE(删除指定URL处存在的任何资源)。 REST接口只是利用这些附加动词来向服务器说明请求的含义。
浏览器通常仅支持“普通”(非XHR)请求的GET和POST,但像Curl这样的工具可以发出完整的HTTP谓词集。您还可以使用其他动词与基于XHR的技术(如AJAX)。
除非您使javascript和XHR支持使用您的应用程序的要求,否则您仍需要为浏览器提供传统的非REST API。
答案 1 :(得分:7)
REST主要是指按照预期的方式使用HTTP协议。在URL上使用GET
HTTP方法可以检索信息,可能采用基于HTTP Accept
标头的不同格式。使用POST
HTTP方法在服务器上创建新项目,PUT
编辑现有项目,DELETE
删除它们。使API具有幂等性,即使用相同的信息重复相同的查询应该产生相同的结果。以分层方式构建您的URL等。
REST只是如何使用URL和HTTP协议来构建API的指导原则。它没有提到返回格式,也可能是JSON。
这与例如将二进制或XML消息发送到指定端口的API相反,而不是使用HTTP方法或URL中的差异。