Swift写服务端七:实现服务器表CRUD
2022-06-16 本文已影响0人
狂奔的胖蜗牛
1.实现增加菜单接口
1.1 首先,在Menu.swift的Menu类上,增加一个扩展Content。如下:

- 该扩展作用是将类和http请求传递的数据之间进行互转。
1.2 然后修改ApiController.swift中post请求处理方法,如下:

代码的逻辑是,先将post请求传递过来的数据转换成menu类,然后将menu类信息保存到数据库中,保存结束后,将menu类返回给请求者。
1.3 使用postman测试:

1.4 使用vs code查看数据库

可以看到常量已经在数据库中添加了。
2.查询菜单
2.1 修改ApiController.swift中get请求处理方法

2.2 使用postman请求

3.修改菜单
3.1 修改ApiController.swift中put请求处理方法

逻辑是先将传递过来的数据进行转换,然后通过id去查询数据库中的数据,接下来将数据库中数据进行修改,再重新保存回去,最后返回给请求者。
3.2 使用postman请求

3.3 使用vs code查看数据库

4.删除菜单
3.1 修改ApiController.swift中delete请求处理方法

逻辑是先通过传递过来的id去数据库里找数据,如果没有找到返回notFound,找到数据后,删除掉,然后返回noContent给请求者。
3.2 使用postman请求

可以看到返回204,表示成功了。
3.3 使用vs code查看数据库
