例如,对于服务REST,http://service_host/stores/count=30将返回从DB提取的30个存储。
如果有人使用count=99999999,该服务将花费相当长的时间来归还所有的商店。我应该从服务端限制计数参数吗?或者我应该让客户来执行他们需要的任何限制?
另外,在服务端实现此计数参数(如有效类型、正值等)是否更好?我倾向于使服务更强大和安全,但不愿过多地检查它。
这里有什么设计惯例吗?
发布于 2013-08-08 10:03:52
您应该对服务端的参数设置一个限制,以便您的服务是可靠的,但同时您应该为客户端提供一个选项,以便用不同的请求获取更多的项。这通常是通过接受两个参数- offset和count来完成的。偏移量是要返回的第一个项目的位置和计数--从要返回的offset开始的项目数。
一般来说-不要让客户滥用你的服务。在服务中实现有意义的限制,以便它是可靠的,并让客户端完成繁重的工作(创建和发送多个请求)。同时,支持这些多个请求和文档,特别是如果服务将由第三方开发人员使用。
发布于 2013-08-08 06:14:18
一般情况下,不要依赖客户来表现得很好。总是在服务器端保护自己。验证类型,执行参数限制,检查无效输入。否则,客户端可能无意中破坏整个系统(更别提恶意攻击了)。
https://stackoverflow.com/questions/18118659
复制相似问题