如何设计一个查询,从我想要以RESTful方式应用过滤器的资源中检索最后的数据?
当我想从如何设计一个查询,从我想要以RESTful方式应用过滤器的资源中检索最后的数据?,rest,api,http,design-patterns,Rest,Api,Http,Design Patterns,当我想从安装中检索上次未删除的测量值时,查询应该是什么样子 像这样的 /my-web-service/installations/measurements/last?removed=false 问题是,我不想检索上次未从安装中删除的测量值。我想从未删除的安装中检索上次测量值。根据,您可以使用“常用查询别名”: 为了让普通消费者体验到更愉悦的API体验, 考虑将一组条件打包成易于访问的条件 宁静的道路。例如,上面的最近关闭的票证查询 可以打包为GET/tickets/recently\u clo
安装
中检索上次未删除的测量值
时,查询应该是什么样子
像这样的
/my-web-service/installations/measurements/last?removed=false
问题是,我不想检索上次未从安装中删除的测量值。我想从未删除的安装中检索上次测量值。根据,您可以使用“常用查询别名”:
为了让普通消费者体验到更愉悦的API体验,
考虑将一组条件打包成易于访问的条件
宁静的道路。例如,上面的最近关闭的票证查询
可以打包为GET/tickets/recently\u closed
因此,在您的情况下,可能是:
/my-web-service/installations/non_removed/measurements/last
其中non_removed
将是查询未删除的安装的别名
希望有帮助 我在这里看到了一些可能性:
如果您需要以事务方式从端点读取数据,那么您的设计方式就是最佳选择。我要更改的是参数的名称,从removed
改为installationRemoved
,因为它更具描述性,并将端点缩短为/myweb service/measures/
——因为安装
不清楚客户端在哪个范围内操作。另外,您不需要since
param来过滤最后的测量值吗
如果有机会分割我要添加的两个端点:
/my web service/installations/?removed=false
/my web service/measurements/?since=时间戳和安装=
最后请注意,如果您的客户不是因为必须使用API,而是在他们喜欢的时候使用API,那么您的API是好的;) 安装和测量之间的关系是什么?一个安装可以有多个测量值。这里我想从所有安装中检索所有最后的测量值(未删除)。首先,它不应该是测量值吗?因为=
,而不是测量值/?因为=
?第二件事是,如果我的url中有一个数组的形式是&installations=[1,2,3]
或&installation=1&installation=2&installation=3
?@defoo,它肯定应该以斜杠结尾,永远;)对于后者,这取决于您的技术堆栈(实现起来要求不是很高)和众所周知的标准——因此似乎应该是:installation=1&installation=2&installation=3
当谈到如何在HTTP查询参数中处理数组时。@defoo,这取决于您;)我总是以斜杠结束端点。我删除了我的评论,因为我在这里找到了你的答案:你在结尾不使用斜杠,并且认为你只是在开玩笑:D