繁体   English   中英

REST调用和URL之间的区别

[英]Difference between REST call and URL

我从某个时候开始进入Web开发。 但最近遇到了一项旧技术, REST 我读了很多关于REST调用的地方,我对REST服务的了解是,

  • REST服务使用JSONXML数据进行响应,这些数据可以在客户端用于呈现DOM元素。

  • 它增强了HTTP协议的使用。

  • REST调用和普通URL之间的URL差异是:

    REST CALLwwww.xyz.com/getCart/12

    网址wwww.xyz.com/getCart.php?cartId=12

我得到了基本的区别,点击URL会在服务器端呈现一个页面并返回响应,而对REST服务进行AJAX调用只会返回一个JSONXML输出,可以在客户端解析。

我的问题是:

如果我让我的.php页面呈现一个JSON字符串,并且应用程序对php页面进行AJAX调用以获取JSON响应并在客户端使用它来呈现DOM,那么REST调用和正常的URL调用。?

如何配置REST调用与普通URLs不同?

有很多关于REST的错误信息和混淆。 我并不感到惊讶,这三点是您从现有信息中理解的,但它们是错误的。

  • REST未与任何特定数据格式或媒体类型耦合。 REST中最重要的约束是强调统一接口,这意味着在这种情况下服务器应该能够响应客户端接受的任何数据格式或媒体类型。 在HTTP下,客户端将通过Accept标头告知它可以理解的格式,并且服务器应遵守或失败,并显示406 Not Acceptable错误。

  • 同样,REST不会与任何特定协议耦合,尽管它经常与HTTP进行复杂化。 同样,遵循统一接口,客户端应该能够遵循服务器提供的任何链接,以用于具有有效URI方案的任何协议。

  • URL的语义与REST完全无关。 对REST而言,最重要的是URL标识一个且只有一个资源。 URL是一个原子标识符,客户端不应依赖其中嵌入的任何语义进行任何操作。 您提供的两个示例在REST中都是有效的。 任何一个都没有或多或少RESTful。

要回答您的问题,在REST应用程序下,您想象的差异不存在。 点击URL将返回响应。 如果客户端使用Accept: text/html标头请求,它可能会返回由浏览器呈现的人性化html页面。 如果客户端使用Accept: application/jsonAccept: application/xml请求,它可能返回一个机器友好格式以供另一个应用程序读取。

Rest更强调动词,比如GETPUTPOST ......你可以调用一个方法

/api/Customers

根据您使用的动词,它将执行get,post,put或delete。 您也可以制作更简单的网址

/api/Customers/{id}/Orders/{id}

而不是制作一个方法

api/GetCustomersOrders?id=x&id=y. 

REST只是一种架构风格,没有技术差异。

REST定义的一件事是您的URL需要是仅引用一个资源的原子标识符。

GET / users /:id(返回给定的用户:id)

PUT / users /:id(用给定的id更新用户:id)

以下是使用框架在php中创建REST API的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM