混合资源(REST)和非资源

  • 本文关键字:资源 REST 混合 java rest
  • 更新时间 :
  • 英文 :


我们的服务器目前提供一个REST-ful API,允许用户按预期CRUD资源。

如果我们有一些不是资源的东西,比如helper数据,会发生什么?我们必须坚持严格的rest约定吗?

例如,假设我们有一个REST-ful API中的dog:

GET:  /dogs/
GET:  /dogs/:id
POST: /dogs/
PUT:  /dogs/:id
DELETE: /dogs/:id

是否可以添加如下内容:

GET: /util/randomNumber/

返回一个随机数?

它不是真正的资源,因为你永远不会更新它,或者删除它,也不能成为集合的一部分。它也不可靠,因为每次点击都会改变。

(注意,我实际上并没有试图生成随机数。

可以将随机数生成器方法装饰成

@GET
@Path("util/randomNumber")
public Response getRandom(...)

在RESTful环境中,并非每个资源都需要具有所有CRUD操作。使用只读非集合资源是完全合法的。

是的,你可以使用一些服务通过GET请求来完成。

Apigee团队讨论了许多有趣的方法和标准来处理RESTful服务中的url和资源。

我读过一本Apigee的电子书的第19页,一种关于转换的方法,我认为这对你很有用。

就你的情况而言,我认为处理产生一些随机值的服务的最好方法是:

GET: /util/generateRandomNumber/

在本例中,您标识您的操作,生成一个随机数。或者,让我们试着做得更好:

GET: /util/generate?type=number

在这种情况下,您可以更灵活地为generate添加其他类型。

你也可以输入一些查询参数,如:

GET: /util/generate?type=number&min=0&max=100

返回0到100之间的一个数字。

这是我的观点,我希望我对你有所帮助。

最新更新