restful是一种思想或者风格,并不是一种标准。
以前我们每次请求的接口或地址都在做描述,例如查询的时候用了query,新增的时候用save,其实完全没必要,我使用了get请求就是查询,使用post请求就是新增的请求,完全没必要额外描述。
在Restful之前的操作:
http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据
http://127.0.0.1/user/save POST 新增用户
http://127.0.0.1/user/update POST 修改用户信息
http://127.0.0.1/user/delete GET/POST 删除用户信息
Restful用法:
http://127.0.0.1/user/1 GET 根据用户id查询用户数据
http://127.0.0.1/user POST 新增用户
http://127.0.0.1/user PUT 修改用户信息
http://127.0.0.1/user DELETE 删除用户信息
SpringMVC的@RequestMapping、@ResponseBody等注解原生态的支持了Rest风格的架构设计。
restful与grpc
restful一般使用http+json或xml格式传输信息,序列化性能差,可读性较好
grpc使用protobuf定义接口,有更加严格的约束条件;将数据序列化为二进制编码,数据压缩更优;