宁静的原则

时间:2009-08-18 09:26:50

标签: rest

对于restful,具有多个表示的资源的真正含义是什么?看完InfoQ's "A Brief Introduction to REST"后,我很困惑。什么是陈述?

5 个答案:

答案 0 :(得分:9)

表示是显示和/或传输数据的某种方式。可以用不同的方式表示相同的资源:

  • HTML 页面
  • 作为 XML 文档
  • 作为 JSON 数据结构
  • 纯文本
  • 即使是 PDF 文件,如果需要
  • 也是如此
  • ...

您可以将“表示”与“数据格式”进行交换,以便更好地理解。

“客户”资源的示例

HTML:

<h1>John Doe</h1>

XML:

<customer-name>John Doe</customer-name>

JSON:

{
  "UserName" : "John Doe",
}

隐喻:

想想一张照片。它可以表示为Bitmap,PNG,JPEG和许多其他格式和数据结构。所有这些都显示相同的图片,但它们的内部结构不同。 (他们的“代表”)

实际考虑:

在Web应用程序环境中,最常见的表示形式是(X)HTML作为发送到浏览器的标准输出。当涉及到Ajax和自动访问Web应用程序时,遵循XML和JSON。

答案 1 :(得分:1)

资源基本上是数据的集合,在示例中,它是与给定客户的关联数据。

当您检索资源时,您将获得它的表示。现在,对于大多数数据,可以使用多种表示。想想数据表或图表等...... 在该示例中,您可以通过设置HTTP Accept标头来定义要接收的表示形式。在xml格式的第一个示例中,在vcard格式的第二个示例中。

答案 2 :(得分:1)

看看这个:REST Wikipedia article

资源是服务器上的一个东西,一个“东西”,文章只是说你可以有多个消息格式返回关于以不同方式描述它的“事物”......

答案 3 :(得分:0)

查看定义REST的Roy Fielding's dissertation

答案 4 :(得分:0)

实际上,“表示”比这些答案所表明的更抽象。 “表示”只是意味着你得到的东西不一定是整个资源。例如,我有一个员工记录,这是我公司HR数据库中的资源。 “Employee”是通过RESTful架构公开的明显资源名词。但是,如果您通过电子邮件URI访问我的员工ID,则表示将与您通过HR福利URI访问我的员工ID时看到的表示形式完全不同。

DR的答案描述的内容(JSON,XML等)在REST术语中实际上称为媒体类型。它只是响应的数据格式。