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用的比较少。
很少会去资源做整体的更新。用到最多的还是局部更新。
结束