当前位置:  开发笔记 > 运维 > 正文

用于查询数据的RESTful服务操作

如何解决《用于查询数据的RESTful服务操作》经验,为你挑选了1个好方法。

在定义面向资源的RESTful服务时,您认为定义用于查询数据的显式操作(动词)是个好主意吗?

这似乎是显而易见的,易于CRUD操作使用HTTP来如PUT操作导向RESTful服务的资源映射,GET,POST和DELETE,但应该如何在查询多个资源映射操作 - 采用了全新的操作称为"QUERY"或静止使用'GET'返回一组资源.

我对人们的意见和经历很感兴趣......



1> John Saunder..:

REST是关于资源的.您的查询将返回什么资源?一组数据?这套是如何确定的?它是如何参数化的?这应该确定您将使用GET操作的URL:

GET /customers  would retrieve all customers
GET /customers?q= would retrieve all customers matching the query

编辑:以下不太清楚我

考虑到查询是关于检索作为一组客户的资源(例如),我开始怀疑所有客户集的明确定义的子集.考虑如下事情:

GET /customers/state/MA              Retrieve all customers in Massachusetts
GET /customers/country/UK            All in the UK
GET /customers/country/UK/postalcode/001-234    All in that postal code in the UK

像这样的资源对我来说是明确的资源,而不是查询.我将继续使用查询字符串来检索任意一组客户,但是如果有客户的自然分区,我可能会在URL空间中指出.

回想一下,GET操作是为幂等操作而设计的,旨在促进缓存.对这些查询的响应应该允许一些合理数量的缓存(可能是一天).这将允许客户端计算机或代理服务器将结果集缓存一段时间,从而节省服务器往返.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有