Chr*_*ney 51 rest restful-url restful-architecture
我有一个网址来为这样的用户获取约会:
/user/:userId/appointments
Run Code Online (Sandbox Code Playgroud)
如果我想为多个用户预约,网址应该如何?
它应该是:
/appointments?users=1d1,1d2..
Run Code Online (Sandbox Code Playgroud)
谢谢,克里斯.
bry*_*mac 66
集合是一种资源,因此/约会可以作为资源.
集合通常还通过查询字符串提供过滤器,这基本上是users = id1,id2 ... is.
所以,
/appointments?users=id1,id2
Run Code Online (Sandbox Code Playgroud)
可以作为过滤的RESTful资源使用.
我认为通常通过对它们进行JSON编码来序列化REST调用参数是一种更好的做法:
/appointments?users=[id1,id2]
Run Code Online (Sandbox Code Playgroud)
甚至:
/appointments?params={users:[id1,id2]}
Run Code Online (Sandbox Code Playgroud)
然后在服务器上取消编码.从长远来看,这将为您提供更大的灵活性.
在发送之前,请确保URLEncode params!
另一种方法是,根据您选择的服务器架构/框架,这是有意义的,一遍又一遍地重复相同的论点.像这样的东西:
/appointments?users=id1&users=id2
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我建议使用单数参数名称:
/appointments?user=id1&user=id2
Run Code Online (Sandbox Code Playgroud)
这一点由Jersey(Java)等框架本身支持.有关详细信息,请查看此问题.
| 归档时间: |
|
| 查看次数: |
105861 次 |
| 最近记录: |