数据如何在REST Web服务中发送
我正在学习Web服务。 我现在对SOAP有很好的理解。 关于REST Web服务我有几个问题。
1)REST Web服务中的GET,PUT和POST方法的工作方式与使用简单网站的方式完全相同。
2)REST Web服务中的GET,PUT和POST方法允许我们在客户端和Web服务之间发送/接收数据(比如Twitter中的推文)。 此消息是以POST / PUT方法的主体以XML / JSON /其他格式发送(PUT&POST)还是接收(GET),或者是单独发送的文件(以特定格式)。
3)是否有任何浏览器工具可用于查看REST Web服务中发送和接收的内容。
首先,澄清一些事情。 REST是一种架构风格,是一套指导您的结构设计决策的约束条件。 REST没有耦合到任何特定的底层协议,所以它不依赖于HTTP,虽然它很常见。
其次,请记住,REST成为几乎所有不属于SOAP的HTTP API的流行词,大多数所谓的REST API根本不是REST。 他们中的大多数都是简单的RPC over HTTP。 我建议阅读这个答案对此做一些澄清。
现在,对你的问题:
1)REST Web服务中的GET,PUT和POST方法的工作方式与使用简单网站的方式完全相同。
您的问题的问题在于,这些方法的唯一确切定义是由RFC定义的,而一个简单的网站可能会以不同的方式实施。 例如,PUT不允许用于部分更新,但许多网站和HTTP API都可以这样做。
正如我上面所说的,REST是独立于协议的,但是考虑到统一的接口约束和应用通用原则,你应该尽可能地坚持底层协议的标准语义,这意味着如果你使用的是HTTP 1.1,您应该坚持在RFC 7230至7235中确定的行为。
2)REST Web服务中的GET,PUT和POST方法允许我们在客户端和Web服务之间发送/接收数据(比如Twitter中的推文)。 此消息是以POST / PUT方法的主体以XML / JSON /其他格式发送(PUT&POST)还是接收(GET),或者是单独发送的文件(以特定格式)。
格式在客户端和服务器之间的先前协议中建立 - 通常在文档中 - 并且在请求期间使用Accept
和Content-Type
标头进行处理。 例如,如果客户端需要JSON响应,它将发送Accept: application/json
头。 如果服务器无法使用JSON响应,则它应该失败,并显示406 Not Acceptable
。
请记住,在实际的REST Web服务中,您不使用像application/json
这样的通用媒体类型,因为除了如何解析它之外,其他内容完全不涉及内容。 您应该为您的资源拥有更多特定的媒体类型,并将文档集中在这些类型上。 例如,JSON格式的用户资源可以具有自定义媒体类型,如application/vnd.mycompany.user.v1+json
。
3)是否有任何浏览器工具可用于查看REST Web服务中发送和接收的内容
在谷歌浏览器中,您可以使用开发人员工具,或者像这样或这样的一些客户端。 你也可以使用像curl这样的命令行客户端。
另外,请记住,将通用html + javascript客户端放入真正的REST API中以使其可通过浏览器进行导航应该相当容易。 以下是使用HAL + JSON和通用客户端的REST API的示例。
https://api-sandbox.foxycart.com/hal-browser/browser.html#/
1)是的,REST的功能与普通的HTTP网站几乎完全一样,例如,GET会在不改变服务器状态的情况下检索数据,POST会将数据作为新的“对象”发送到Web服务,PUT会修改现有的“对象”
2)你可以将要发送的数据放入POST请求的主体中,并将数据返回到主体中。 GET不接受正文中的任何数据(并且您将其指定为路径/查询参数的一部分,即http://service.com/rest/directory/user1?param=something),但会返回查询的结果在体内。 POST会要求邮件以指定为接受的格式之一发布,通常是JSON。 指定Content-Type将向Web服务器指示您正在发送的数据类型,Accept标头将指示您希望响应的类型。
3)在Google Chrome浏览器中,您可以使用开发人员工具(Windows中的Ctrl + Shift + I),然后在网络选项卡上查看页面加载/执行任务时发送和接收的内容。 您可以使用DHC或RestEasy通过GUI将您自己的自定义请求发送到REST服务,或通过命令行卷曲来完成此操作
REST Web服务中的GET,PUT和POST方法的工作方式与使用简单网站的方式完全相同?
是。 他们在我们使用http的任何地方都一样。 请特别阅读本文的请求方法部分
REST Web服务中的GET,PUT和POST方法允许我们在客户端和Web服务之间发送/接收数据(例如Twitter中的推文)。 此邮件是以XML / JSON /其他格式在POST / PUT方法的主体中发送(PUT&POST)和接收(GET)的。
是的,他们通常是在这些格式,但可以在任何取决于你的要求。 阅读此答案以更好地理解内容类型和标题
是否有任何浏览器工具可用于查看REST Web服务中发送和接收的内容。
正如其中一条评论所述。 邮差是一个很棒的扩展。 我通常在邮差上提供小提琴,但它不是一个浏览器工具。
上一篇: How is data sent in REST web services
下一篇: Why document RESTful APIs if they are supposed to use HATEOAS?