我正在构建一个RESTful Web服务:
GET /clients
下,我收到了所有已知客户的列表。GET /clients/1
下,我正在获取clientId
1的客户端对象。应有的一切。
这些客户有一个名为authorized
的属性。在我的Web UI上管理这些,我为已授权和未授权的客户分隔了表。当然,我不想从服务器加载所有客户端只是为了显示未经授权的客户端。
问题是,如何通过RESTful URL过滤客户端?由于我想做一个合适的RESTful API,查询参数不是一个选项。
我已经考虑过另外做GET /unauthorizedClients
和GET /authorizedClients
,但这似乎不对,因为我仍然会使用DELETE
/ clients /%clientId%`删除一个客户端。
我想不出一个令人愉快的方法来解决这个问题。关于如何解决这个问题的任何提示都是受欢迎的。
答案 0 :(得分:1)
我只是想知道阻止您使用查询参数的原因。它们是过滤REST API中的资源集合的最合适方式。使用查询参数不会使您的API 更少 RESTful。
您可以拥有以下内容:
GET /clients?status=authorized
GET /clients?status=unauthorized
另一种选择是:
GET /clients/authorized
GET /clients/unauthorized
你真的应该考虑查询参数。
答案 1 :(得分:0)
我会选择/clients/unauthorized
和/clients/authorized
。您需要taylor资源URI,如目录。
这样,根据/client/[id]
资源删除客户端没有任何问题。