我们的服务器目前提供REST-ful API,允许用户按预期使用CRUD资源。
如果我们有一些不是资源的东西会发生什么,例如帮助数据?我们是否必须坚持严格的REST-ful惯例?
例如,假设我们在REST-ful API中有狗:
GET: /dogs/
GET: /dogs/:id
POST: /dogs/
PUT: /dogs/:id
DELETE: /dogs/:id
是否可以添加以下内容:
GET: /util/randomNumber/
返回一个随机数?
它不是真正的资源,因为你不会更新或删除它,也不能成为集合的一部分。它不可靠,因为它会在每次击中时发生变化。
(注意,我实际上并没有尝试生成随机数。只是一个例子)。
答案 0 :(得分:1)
是的,可以将随机数生成器方法设置为
@GET
@Path("util/randomNumber")
public Response getRandom(...)
答案 1 :(得分:1)
在RESTful环境中,并非每个资源都需要具有所有CRUD操作。拥有只读非收集资源是完全合法的。
答案 2 :(得分:1)
是的,您可以使用某些服务通过GET请求来执行此操作。
Apigee team讨论显示了许多有趣的方法和标准,可用于RESTful服务中的URL和资源。
我在Apigee的e-book的第19页读过,这是一种关于转换的方法,我认为这对你有用。
在您的情况下,我认为处理生成一些随机值的服务的最佳方法是:
GET: /util/generateRandomNumber/
在这种情况下,您可以识别您的操作,生成随机数。或者,让我们尝试做得更好:
GET: /util/generate?type=number
在这种情况下,您可以更灵活地为生成添加其他类型。
您还可以添加一些查询参数,例如:
GET: /util/generate?type=number&min=0&max=100
将返回0到100之间的一个数字。
这是我的观点,我希望我帮助过你。