设计REST API: 如果一个REST api里面传递多个同名参数合理吗


我在设计一个网站的REST API,碰到一个问题,想听听大家的意见,多谢。

比如:一个用来获取用户信息的REST api

http://www.mydomain.com/users?name=ken&name=kerry&name=Chris

这样,传递三个name参数,可以只调用一次,就可以获取这三个用户的信息。但是我看了很多网站暴露的REST API, 如sinaapp,weixin 等,对于此类的REST API, 只允许提供一个name参数,如果需要这三个用户的信息,需要调用三次 http://www.mydomain.com/users?name=ken http://www.mydomain.com/users?name=kerry http://www.mydomain.com/users?name=Chris

我觉得这样这样效率太低了,但sinaapp等为什么会这样设计呢? 这是REST api的设计规范吗?

请各位不吝指教。多谢!

web rest api

triella 10 years, 8 months ago

你可以参考一下jquery的方法


 $.getJSON("/",{name:[11,22,33,44]})

这样的话请求的URL就成了


 /?name%5B%5D=11&name%5B%5D=22&name%5B%5D=33&name%5B%5D=44

在chrome的debug工具中,就是这样


 name[]:11
name[]:22
name[]:33
name[]:44

在服务端中可以解析为原始的,起码在cakephp中可以,其它的我没试过


 {name:[11,22,33,44]}

小虫子飞啊飞 answered 10 years, 8 months ago

Your Answer