如果我对REST有误,你能否纠正我?

时间:2011-06-04 15:31:36

标签: rest

REST用于与任何两个系统进行通信。

因此,如果您想从一台机器获取信息,我们必须使用GET方法并在一个系统中添加信息,我们需要使用POST..Like明智的PUT和DELETE方法。

当机器获取资源时,它将要求机器可读的资源。当浏览器为人类获取资源时,它将要求人类可读的资源。

所以当你从机器1发送请求时,它将转到某台机器x。机器x将机器可读格式发送到机器1.现在浏览器更改为用户可读格式。

所以JSON是一种机器可读格式,HTML是一种客户端可读格式......如果我错了,请纠正我?

3 个答案:

答案 0 :(得分:3)

REST是一种架构风格,而不是一种技术。话虽这么说,大多数人都知道的唯一一种旨在与REST架构风格保持一致的技术是HTTP。如果您想了解REST架构风格,我建议使用以下两种资源:

  • Roy Fielding的演讲“剩下的REST”(http://roy.gbiv.com/talks/200709_fielding_rest.pdf)
  • “RESTful Web Services”一书

当您发送资源的GET请求时,由服务器决定它希望发回的表示形式(格式,例如html与json)。客户端可以发送一个Accept标头,该标头指定一组首选格式,但最终由服务器决定它要发送的内容。要了解有关此互动的更多信息,请参阅“HTTP内容协商”。

浏览器倾向于返回HTML的原因是它们发送带有“text / html”的Accept标头。如果您以某种方式将浏览器配置为始终仅发送“application / json”的Accept标头,则有时会返回JSON(如果服务器支持JSON表示),有时是HTML(如果服务器忽略了您的Accept标头),有时会出错说服务器无法支持您请求的表示。

如果您有合适的库,计算机可以解析JSON或HTML。 JSON内容往往是结构化数据(针对解析进行了优化),而HTML往往针对表示进行了优化,因此JSON通常更容易解析程序。

答案 1 :(得分:0)

听起来对我来说是正确的。 HTML绝对是最终用户的消费(尽管那里有令人讨厌的屏幕抓取代码)并且我无法将JSON(或XML或YAML)提供给最终用户客户端以进行直接显示。

您可能希望确保只提供与您向机械客户提供的相同基本数据模型匹配的HTML;通过将XSLT样式表应用于标准响应的XML版本来按需生成XHTML可能是最简单的方法,因为您可以使用独立于基本应用程序的层来实现这一点。

答案 2 :(得分:0)

要迂腐,HTML和JSON都是机器可读的格式。区别在于HTML有一个规范,描述了Web浏览器知道如何解释的一些语义,以便直观地呈现它。除了定义如何序列化数组,对象和属性之外,JSON规范实际上没有语义。

不要忘记JSON和HTML只是RESTful系统可以使用的数百种可能有用的媒体类型格式中的两种。