当您在REST集合上执行PUT时,是否应该提供集合中成员的地址?
对指定地址的狗进行PUT
[{"name":"sparky", "id":1}, {"name":"rusty", "id":2}]
...或
对没有指定地址的狗进行PUT
[{"name":"sparky"}, {"name":"rusty"}]
让服务器返回集合中新成员的位置。在我的情况下,我的表中的行ID。
答案 0 :(得分:1)
如果要发送PUT
来替换整个集合中的每个资源,则应发送全新/更新的实体。
id
是实体的一部分,您应该在实体内发送它,但是对于与URI无关的客户端(也就是"地址") element,因为客户端现在知道服务器如何构建URI 。id
不是客户实体的一部分,则不应在实体内发送。但这两种情况都是可能的,您的服务器可以同时接受这两种情况,重要的是集合上的PUT
行为与所描述的here一样:
PUT方法请求将所包含的实体存储在提供的Request-URI下。
因此,如果您PUT
/api/animals/dogs/
,只能在/dogs/
下找到这些狗而不是/cats/
PUT
如果Request-URI引用已经存在的资源,则所包含的实体应该被视为驻留在源服务器上的实体的修改版本
这意味着任何集合上的/animals/dogs/
都会取消整个集合,并使用方法调用正文中给出的实体创建一个新集合。
如果Request-URI未指向现有资源[...],则源服务器可以使用该URI创建资源。
这意味着如果$http.get("http://192.168.3.9:8081/command=get?token").success(function(data){
console.log("token is: "+data);
}).error(function(data, status, headers, config){
console.log("unable to find token");
console.log(data);
console.log(status);
console.log(headers);
console.log(config);
});
为空,则应在那里创建一个新的集合。