据我所知,根据RESTful准则,每个url应该代表一个资源或一组资源,并且动作应该作为参数。RESTful:如何在同一个网址上执行不同的操作?
假设我们有一组资源命名为“用户”,我想注册一个多用户,
因此API可能是:
POST /users HTTP/1.1
Host: www.example.com
username=<username>&password=<password>&email=<email>&age=<age>
现在,如果我要取消注册一个用户,然后该注销的API:
方法仍然会POST
,
URI仍然会/users
,
参数可能是username=<username>&password=<password>&reason=<reason>
在这种情况下,两个apis使用不同的参数共享相同的url和方法,我认为这不是一个好的设计。
所以问题是:
针对这种情况的好设计是什么,使服务器端更容易区分同一资源上的两种不同操作?
编辑
我真的很感激@添的建议,现在我想我的问题是更通用:
如果有对资源的几个更新的动作,每个动作需要的参数不同的组合,我现在应该如何制定RESTful API?非常感谢。 :)
谢谢!请查看我的编辑。 – dastan 2014-10-18 13:51:52
如何解决这个问题取决于你用于后端的情况,但我认为这是一个完全不同的问题,应该有自己的问题:-) – 2014-10-18 13:56:28
'你用于后端',你能解释一下吗?对不起,我不清楚你的意思。 – dastan 2014-10-18 15:01:32