2012-07-16 22 views
0

我正在通过REST Web服务实现软件更新服务器。它的目的是获得一个客户端升级“指令”(不是文件本身)通过GET请求资源实现连接控制的RESTful方式

/clients/{clientId}/upgrades?completed=false 

客户设计民意调查在30分钟的时间间隔的资源。当没有可用的升级时,资源返回状态代码404,并返回升级指令(如果可用)。当客户端升级完成时,客户端将通过PUT请求向服务器报告

/clients/{clientId}/upgrades/{upgradeId} 

有一些状态变化。

现在,需要从服务器端进行升级连接控制,即最大同时升级连接限制。

我可以添加一个“升级”状态指示器的字段来升级资源,当访问/ clients/{clientId}/upgrades时更改指示器,并计算“升级计数与升级== true”以找到连接号码。如果连接数量限制超过,则返回状态码404给客户端。但是,它确实打破了REST Web服务的无状态原则。

欢迎任何想法。提前致谢。

回答

0

您可能会要求客户端向具有请求开始升级的值(例如“升级”状态)的资源成功PUT。每当您的服务器获得其中一个值时,它将检查它已批准的当前客户总数。如果有剩余的资源,那么它可以返回成功,从而允许客户继续。

当客户端发送完成PUT请求时,您可以递减资源计数器。