设计rest接口,对于修改(update,add,delete)操作,网上有说应该将修改后的结果返回调用方,调用方就可以直接利用这个修改后的结果。那么这个返回结果是将修改后的整个实体(比如User)返回,还是返回一个主键id。问题1:①如果返回一个主键id。由于update和delete的id本来就是从调用端传过来,因此不需要返回。而add时id是后台生成的,所以需要返回给调用者。这样的话,即使封装了统一返回对象,感觉API的返回json还是不太统一。②如果返回实体。岂不是一个修改操作的api就要操作数据库两次(一次修改,一次查询)请问各位大大都是如何设计restAPI的呢?有没有代码分享一下?谢谢了!
2 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
你好,RestfulAPI是一种设计风格,并不是强制的标准我们可以对比一下传统与其的写法传统写法:查询/user/query?name=tomGET详情/user/getInfo?id=1GET创建/user/create?name=tomGET修改/user/update?id=1&name=jerryPOST删除/user/delete?id=1GETRESTful写法查询/user?name=tomGET详情/user/1GET创建/userPOST修改/user/1PUT删除/user/1DELETE关于RestfulAPI的几点说法1、用URL描述资源2、使用HTTP方法描述行为,使用HTTP状态码来表示不同的结果3、使用json交互数据4、RESTful只是一种风格,并不是强制的标准官方也有一个模型:Level0:使用Http作为传输方式Level1:引入资源概念,每个资源都有对应的URLLevel2:使用HTTP方法进行不同的操作,使用HTTP状态码来表示不同的结果Level3:使用超媒体,在资源的表达中包含了链接信息类似SpringMVC中开发RestfulAPI,一个查询请求:——编写针对RestfulAPI的测试用例——使用注解声明RestfulAPI——在RestfulAPI中传递参数常用注解——@RestController标明此Controller提供RestAPI——@RequestMapping及其变体,映射http请求url到java方法——@RequestParam映射请求参数到java方法的参数——@PageableDefault指定分页参数默认值而对于具体返回什么,或者获取什么,更多的时候要根据业务的重点来设计。
添加回答
举报
0/150
提交
取消