REST和大型数据库查询

时间:2010-12-09 15:21:39

标签: database rest

众所周知,ReST网络服务无法保持状态 - 当我考虑进行大型数据库事务时,这对我来说是一个问题,我想知道你是否可以提供帮助。

我的ReST Web服务有一个主要作用 - 对数据库执行CRUD操作。问题是,如果我必须查询具有数千行的表并将其作为XML发送回客户端 - 这不是好事。继续请求数千条记录是非常低效的但是您不能使用REST Web服务进行部分事务(即在Oracle中使用ROWNUM关键字)。那么你如何绕过这个?

一次从表100中获取记录的一种可能方法是:

http://mywebservice/employees/0/100

我持有提交的最后一个请求的状态,即100

下一个请求将是:

http://mywebservice/employees/101/200

等等。但这是否非常安静?

1 个答案:

答案 0 :(得分:1)

你提到过CRUD,但你的例子看起来只是读取动作。你为什么不引入分页?

# items 0 to 99
GET /employees?page=0&size=100
# items 100 to 199
GET /employees?page=1&size=100

您的示例中您所指的状态尚不清楚。谈论HTTP api上的Restful,是的HTTP本身就是一个无状态协议,但整个系统肯定有一个状态,它可以随着时间的推移而改变(例如在写POST操作时)。

也许您可以举例说明您尝试通过Restful api公开哪些写操作(您提到的交易)?