如何在REST Web服务中发送数据

时间:2015-04-25 18:16:38

标签: api rest http

我正在学习网络服务。我现在对SOAP很了解。关于REST Web服务我几乎没有问题。

1)DO GET,PUT& REST Web服务中的POST方法与使用简单网站的方法完全相同。

2)GET,PUT& REST Web服务中的POST方法允许我们在客户端和服务器之间发送/接收数据(例如:Twitter中的推文)。网络服务。此消息是否已发送(PUT& POST)&在POST / PUT方法的Body中以XML / JSON /其他格式接收(GET),或者是单独发送的文件(以特定格式)。

3)是否有任何浏览器工具可用于查看发送和发送的内容。在REST Web服务中收到。

3 个答案:

答案 0 :(得分:1)

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)并进入网络标签,查看在页面加载/执行任务时发送和接收的内容。您可以使用DHCRestEasy通过GUI将自己的自定义请求发送到REST服务,或cURL通过命令行执行此操作

答案 1 :(得分:1)

DO GET,PUT& REST Web服务中的POST方法与使用简单网站的方式完全相同吗? 是肯定的。它们在我们使用http的任何地方都是一样的。阅读this article特别请求方法部分

GET,PUT& REST Web服务中的POST方法允许我们在客户端和服务器之间发送/接收数据(例如:Twitter中的推文)。网络服务。此消息是否已发送(PUT& POST)&以XML / JSON /其他格式在POST / PUT方法的Body中接收(GET) 是的,它们通常采用这些格式,但可以根据您的要求进行处理。 阅读this ans,以便更好地理解内容类型和标题

是否有任何浏览器工具可用于查看已发送的内容和在REST Web服务中收到。
正如其中一条评论中所述。邮差是一个很棒的镀铬扩展。我一般比Postman更喜欢小提琴,但它不是浏览器工具。

答案 2 :(得分:1)

首先,澄清一些事情。 REST是一种架构风格,一组约束来指导您的结构设计决策。 REST没有与任何特定的底层协议耦合,因此它不依赖于HTTP,尽管它很常见。

其次,请记住,REST成为一个流行语,几乎可以引用任何不是SOAP的HTTP API,大多数所谓的REST API都不是REST。其中大多数是简单的RPC over HTTP。我建议您阅读this answer以获得一些澄清。

现在,问题:

  

1)DO GET,PUT& REST Web服务中的POST方法完全适用于   与使用简单网站的方式相同。

您的问题的问题在于,这些方法如何工作的唯一确切定义是由RFC定义的方法,而简单的网站可能以不同方式实现它。例如,PUT不允许用于部分更新,但许多网站和HTTP API都是这样做的。

正如我上面所说,REST是独立于协议的,但是尊重统一的接口约束并应用通用性原则,你应该尽可能地坚持底层协议的标准语义,这意味着如果你'重新使用HTTP 1.1,您应该坚持在RFC 7230到7235中确定的行为。

  

2)GET,PUT& REST Web服务中的POST方法允许我们使用   在客户端和客户端之间发送/接收数据(例如:Twitter中的推文)网络   服务。此消息是否已发送(PUT& POST)&在身体中收到(GET)   XML / JSON /其他格式的POST / PUT方法或文件(在   具体格式)单独发送。

格式是在客户端和服务器之间的先前合同中建立的 - 通常在文档中 - 并且在请求期间使用AcceptContent-Type标头处理。例如,如果客户端想要JSON响应,它会发送Accept: application/json标头。如果服务器无法使用JSON进行响应,则该服务器将失败并显示406 Not Acceptable

请记住,在实际的REST网络服务中,您不会使用像application/json这样的通用媒体类型,因为除了如何解析内容之外,其他内容绝对没有任何内容。您应该为您的资源提供更多特定的媒体类型,并将文档集中在这些类型上。例如,JSON格式的用户资源可以具有自定义媒体类型,如application/vnd.mycompany.user.v1+json

  

3)是否有任何浏览器工具可用于查看发送和发送的内容。   在REST Web服务中收到

在Google Chrome中,您可以使用开发人员工具或某些客户端,例如thisthis。您还可以使用命令行客户端,如curl

另外,请记住,将通用html + javascript客户端放入真正的REST API以使其可以通过浏览器导航应该非常容易。以下是使用HAL + JSON和通用客户端的REST API示例。

https://api-sandbox.foxycart.com/hal-browser/browser.html#/