P6 写代码:状态码、路由相关
根据前面讲的一些概念来写代码
这里是已经写好的方法,返回一个集合。他是一个Company的集合,并把它返回json
OK就是返回状态码为200的集合,Ok实现了IActionResult
如果要返回为404就可以使用NotFound()方法。这些方法都是ControllerBase这个父类里面的
根据公司id查询,返回单个实体
这个compaynId应该是url的一部分
类似于这种的api地址
如果没有查到这个公司就返回NotFound(),这种写法有可能会发生一些错误。如果请求量比较大,在我第一次查询它存在,然后这段时间内,虽然是在极短的时间内,另外一个请求,正好删除了这条记录。那么后面再去查询这条记录并返回对象的时候实际上是查不到的。
所以下面这种写法有可能会出现错误。
另外一种写法,直接判断查询返回的对象是否为null
补充-解决P3节课最后的错误
默认运行程序会报错。我们使用的是属性路由。但是在Action上并没有标明属性路由。
在Action上加上属性
查询单个实体
这个时候我们再运行程序测试。运行起来了 ,只不过这个起始的网址并不正确。
把前面公共的部门都提出来。
另外一种写法和上面其实是一样的
那么这里其实就是空字符串了
空字符串其实也可以不写
括号也可以不用写
根据id查询就是这样
路径也可以写到Route里面
不过博主还是习惯于第一种写法
修改起始地址
运行程序测试
用postman测试
http://localhost:5000/api/companies
后面传id的形式
改成一个不存在的id。3.0版本后的404信息在body里面也比较友好了。
结束