为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯709654 2018-08-12 20:26:22
设计rest接口,对于修改(update,add,delete)操作,网上有说应该将修改后的结果返回调用方,调用方就可以直接利用这个修改后的结果。那么这个返回结果是将修改后的整个实体(比如User)返回,还是返回一个主键id。问题1:①如果返回一个主键id。由于update和delete的id本来就是从调用端传过来,因此不需要返回。而add时id是后台生成的,所以需要返回给调用者。这样的话,即使封装了统一返回对象,感觉API的返回json还是不太统一。②如果返回实体。岂不是一个修改操作的api就要操作数据库两次(一次修改,一次查询)请问各位大大都是如何设计rest API的呢?有没有代码分享一下?谢谢了!
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

你好,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 :引入资源概念,每个资源都有对应的URL
Level 2 :使用HTTP方法进行不同的操作,使用HTTP状态码来表示不同的结果
Level 3 :使用超媒体,在资源的表达中包含了链接信息
类似SpringMVC中开发Restful API,一个查询请求:

——编写针对RestfulAPI的测试用例
——使用注解声明RestfulAPI
——在Restful API中传递参数

常用注解
——@RestController 标明此Controller提供RestAPI
——@RequestMapping及其变体,映射http请求url到java方法
——@RequestParam映射请求参数到java方法的参数
——@PageableDefault指定分页参数默认值
而对于具体返回什么,或者获取什么,更多的时候要根据业务的重点来设计。


查看完整回答
反对 回复 2018-08-12
  • 2 回答
  • 0 关注
  • 1356 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信