猿问

rest API在做修改操作时,如何返回修改后的结果

设计rest接口,对于修改(update,add,delete)操作,网上有说应该将修改后的结果返回调用方,调用方就可以直接利用这个修改后的结果。那么这个返回结果是将修改后的整个实体(比如User)返回,还是返回一个主键id

问题1:
①如果返回一个主键id
由于update和delete的id本来就是从调用端传过来,因此不需要返回。而add时id是后台生成的,所以需要返回给调用者。这样的话,即使封装了统一返回对象,感觉API的返回json还是不太统一。

②如果返回实体
岂不是一个修改操作的api就要操作数据库两次(一次修改,一次查询)

请问各位大大都是如何设计rest API的呢?有没有代码分享一下?谢谢了!


慕斯709654
浏览 1357回答 2
2回答

不负相思意

你好,Restful API是一种设计风格,并不是强制的标准我们可以对比一下传统与其的写法传统写法:查询 /user/query?name=tom GET 详情 /user/getInfo?id=1 GET创建 /user/create?name=tom GET修改 /user/update?id=1&name=jerry POST删除 /user/delete?id=1 GET RESTful写法查询 /user?name=tom GET 详情 /user/1 GET创建 /user POST修改 /user/1 PUT删除 /user/1 DELETE关于Restful API的几点说法1、用URL描述资源2、使用HTTP方法描述行为,使用HTTP状态码来表示不同的结果3、使用json交互数据4、RESTful只是一种风格,并不是强制的标准官方也有一个模型:Level 0 :使用Http作为传输方式Level 1 :引入资源概念,每个资源都有对应的URLLevel 2 :使用HTTP方法进行不同的操作,使用HTTP状态码来表示不同的结果Level 3 :使用超媒体,在资源的表达中包含了链接信息类似SpringMVC中开发Restful API,一个查询请求:——编写针对RestfulAPI的测试用例——使用注解声明RestfulAPI——在Restful API中传递参数常用注解——@RestController 标明此Controller提供RestAPI——@RequestMapping及其变体,映射http请求url到java方法——@RequestParam映射请求参数到java方法的参数——@PageableDefault指定分页参数默认值而对于具体返回什么,或者获取什么,更多的时候要根据业务的重点来设计。
随时随地看视频慕课网APP

相关分类

Java
我要回答