你能否给我一些关于"表示"的概念的澄清?在REST服务?

时间:2015-02-15 16:06:36

标签: java web-services rest java-ee architecture

我正在研究阅读本文的REST架构:https://templth.wordpress.com/2014/12/15/designing-a-web-api/

但我对此有些怀疑:

我理解REST不直接依赖于HTTP,但HTTP是实现REST Web API的智能方式。

我也理解REST Web API的重点是资源概念,它类似于管理数据,状态,执行处理以及资源由一个URL。例如,像这样:http://mybank.com/banking/accounts/123456789 可以是代表家庭银行账户的资源。

此外,我知道使用REST可以从Web访问资源,我们可以使用预定义的方法集与之交互,如果我的REST API基于使用对于HTTP,这组方法是HTTP协议提供的方法(GETPUTPOSTDELETE)。

我认为所有这些对我来说都很清楚。

我有一些疑问是REST web API 提供了一组交换表示的资源的概念。我想我理解资源代表什么,但在阅读上一篇文章之后,我无法完全理解"表示的含义。"

此外,发表的文章说:

  

交换数据的格式对应于表示。该   后者提供托管数据类型。我们可以注意到一个   表示定义了数据结构,并且没有链接到a   特定格式,例如JSONXMLYAML。这个概念被称为   变体。

是什么意思:交换数据的格式?任何人都可以准确解释前一段的含义吗?

1 个答案:

答案 0 :(得分:0)

非常感谢关于这篇文章!

表示对应于客户端和RESTful服务之间交换的数据。你可以区分种类:

  • 结构化的,面向数据并包含一组字段。例如,与字段lastName和firstName。
  • 的联系人
  • 与二进制(图片,zip,...),简单文本等内容相对应的非结构化文件,...主要对应于媒体内容和UI

另一个概念伴随着表示,变体(也称为媒体类型)。它定义了用于表示内容的格式。例如,JSON,XML,HTML,PNG,......

以下是带有变体JSON的结构化表示的示例:

{
    "firstName": "a name",
    "lastName": "..."
}

带有变体PNG的非结构化表示的样本是àPNG文件本身的内容。

希望它可以帮到你, 亨利