后端接口规范Restful

文章目录

  • 前言
  • 一、什么是Restful
  • 二、Restful案例
  • 三、Restful的优势
  • 四、传输和接收数据
  • 五、常用注解介绍


前言

我们的项目是前后端分离的项目,而前后端分离的项目中,很重要的一块是前后端项目数据的交互。在项目中,我们可以使用ResultFul规范来编写统一的前后端交互接口,即我们之前所写的Controller。


一、 什么是Restful

Restful【规范】是一种面向资源的架构风格,可以简单理解为:使用URL名词定位资源,用HTTP动词【GET,POST,DELETE,PUT,PATCH】描述操作。客户端使用GET,POST,PUT,DELETE,PATCH来表示操作方式的动词对服务端资源进行操作。一般情况下:

GET:获取资源

POST:添加资源【也可以用于更新资源】

PUT:更新资源【也可以用于添加资源】

DELETE:用来删除资源

PATCH:用来做批量操作

注意:get请求是将参数放在地址栏。post,put,patch是将参数放在请求体【requestBody】。一般传一个参数可以用get,delete,多个参数用post,put,patch。

二、Restful案例

传统方式Restful
http://localhost:80/dept/selectById?id=1GET http://localhost:80/dept/1获取单个部门
http://localhost:80/dept/deleteById?id=1DELETE http://localhost:80/dept/1删除单个资源
http://localhost:80/dept/insertPOST http://localhost:80/dept创建单个部门
http://localhost:80/dept/updatePUT http://localhost:80/dept修改单个部门
http://localhost:80/dept/selectAllGET http://localhost:80/dept获取所有部门

反例:GET /getDept/1 : url中不应该有动词

正例:GET /dept/1

注意:区分一个请求是不是相同的请求:请求地址 + 请求方式

注意:如果一个类中接口过多,是可以通过多加层级用于区分不同的请求。例如

POST http://localhost:8080/shop                 -   添加店铺信息
POST http://localhost:8080/shop/settlement      -   店铺入驻
POST http://localhost:8080/shop/importExcel     -   导入Excel

三、Restful的优势

1. 拥有http的优点:本身就是http,无状态,不用关心两次访问上下文,不像重定向和转发需要关注当前路径。  
2. 充分利用HTTP协议本身语义:原来只用get,post,现在还要用delete和put,patch。

四、传输和接收数据

前端传输数据后端匹配请求 + 接收数据
GET http://localhost/dept/1@GetMapping("/dept/{id}") + @PathVariable("id") Long id
Post http://localhost/dept - 对象:{}@PostMapping("/dept") + @RequestBody Dept dept
复杂表单数据【文件上传】name="file"@PostMapping("/dept") + @RequestPart("file") MultipartFile file

五、常用注解介绍

@GetMapping等价于:@RequestMapping( method = {RequestMethod.GET} )
@PostMapping等价于:@RequestMapping( method = {RequestMethod.POST} )
@PathVariable从路径中获取变量
@RequestBody从请求体【请求数据包中】中获取数据
@RequestPart获取复杂表单数据或获取二进制文件数据

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值