P31 整体更新或新增 PUT



之前我们做的一个Controller CompanyCollectionsController

这个方法传进来一组id。通过id来获取一组company

针对这个controller传过来一组要更新的company。实际上很少这么去做。这里不这么做。

今天的内容(上面的内容看不看都行。)


回顾post

回顾put





put可以使用带着id的URI来进行创建

开始写代码

修改这里的代码,EmployeeController的updateEmployeeForCompany的action

如果这里我们通过EmployeeId查不到Entity的话。这里我们就不返回404NotFound了 。这里我们就直接创建一个。


先把entity转换为Employee然后,给EmployeeId赋值,然后调用添加Employee的添加方法。

save保存数据


由于我们是创建资源,所以需要返回创建这个资源的;链接

复制过来,只需要改下entity


返回的类型我们就改下

测试

这是之前的一个put请求

这里的id对应的是存在的资源


id的最后四位改成4个0

返回了201。新生成的id就是我们传递过来的id

再发送一个同样的请求,这次返回204。因为这个资源已经存在了 所以他走的就是更新操作。

执行一次请求和多次请求对资源的副作用是一样的。这里特地使用了guid作为主键这样可以通过我们的url传递进来由客户端指定了id.
如果使用了int等自增类型就不行了。
 

put这里就讲到之类,实际上put用的比较少。

很少会去资源做整体的更新。用到最多的还是局部更新。


 

结束




 

原文地址:https://www.cnblogs.com/wangjunwei/p/14094991.html