2015-04-06 146 views
1

我在RESTful应用程序中非常新,我对一些REST概念有一些怀疑。什么是REST资源和表示?

我知道任何RESTful API中的基本概念是资源。资源是一个具有类型,关联数据,与其他资源的关系以及对其进行操作的一组方法的对象(HTTP方法:GET,POST,PUT和DELETE)

所以我的第一个疑问与资源概念。我正在尝试做自己的一些例子,我不知道我是否正确理解了资源是什么。

在我看来,资源是“我必须用我的REST web服务器传输的信息”。因此,举例来说,如果我有一个REST Web服务提供增值税号码,可以返回与此增值税号码相关的发票。所以这些退回的发票“对象”是我的资源。

所以一个资源是我可以处理的事情:我可以获得现有资源添加新资源,更新现有资源或删除现有资源。

这是正确的还是我错过了什么?

如果更正了第二个疑问就是表示的概念。

从我所了解的信息中我可以看到多种不同形状的资源(或者资源可以以多种不同方式公开),例如HTML或XML或JSON等等。

因此,相同的资源可以以不同的方式公开,并存在将资源(可以是存储在数据库表中的行)转换为HTML消息或XML消息或JSON消息的机制。

这是interpratation正确吗?

回答

3

从本段(emphasys矿):

在我的脑海里的资源是 “我有我的REST的Web sercice传输”。因此,举例来说,如果我有一个REST Web服务提供增值税号码,可以返回与此增值税号码相关的发票。 所以这些退回的发票“对象”是我的资源。

你说错了。

资源是一个类型的对象,相关的数据,对其他资源的关系,一套操作方法:通过回顾一个资源的概念(在你的问题,emphasys矿陈述)它(HTTP方法:GET,POST,PUT和DELETE)

从你的例子中,发票对象没有任何一套操作它们的方法。它们是REST服务响应的一部分。相反,组件(可以是Java或C#类)具有一种方法来接收增值税号,并将返回与增值税号相关联的发票并且将被调用以支持正确的HTTP方法(在这种情况下, GET)的资源。

现在,理解这一点之后,有这样其他段落:

从我都明白,我可以看到serveral的型动物形状的资源(或资源可以以多种不同的方式暴露),例如如HTML或XML或JSON等。

资源将以正确的格式返回响应:HTML,XML,JSON,纯文本等。同样,你的发票不是资源,他们不应该选择他们应该返回的格式。

+0

mmm ......好的......所以......在一个天真的说明中,我可以说一个处理GET,POST,PUT和DELETE Http方法的DAO对象是我的资源吗? –

+1

@JavaSurfer是的,你可以这么说。使用Dao类作为资源的事实是一个设计问题。 –