当前位置: 首页 > news >正文

【SpringBoot】| 接口架构风格—RESTful

一:接口架构风格—RESTful

1. 认识RESTful

(1)接口

①接口: API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。

②接口(API):可以指访问servlet, controller的url, 调用其他程序的函数。

(2)架构风格
(3)REST架构风格 

REST : 是一种接口的架构风格和设计的理念,不是标准。(英文: Representational State Transfer , 中文: 表现层状态转移)

①表现层状态转移:

表现层:就是视图层, 显示资源的, 例如:jsp等显示操作资源的结果。

状态: 表示资源的变化。

转移: 资源可以变化的;资源能创建(new状态)、资源创建后可以查询资源(能看到资源的内容)、资源内容可以被修改(修改后资源 和之前的不一样)。

②REST中的要素:用REST表示资源和对资源的操作

 资源使用URL表示,通过名词表示资源。
使用http中的动作(请求方式), 表示对资源的操作(CURD)

GET: 查询资源 ---> sql select
POST: 创建资源 ---> sql insert

PUT:更新资源 ---> sql update

DELETE: 删除资源 ---> sql delete
如果需要分页、排序等参数,依然是通过?的形式放在url的后面

2. RESTful 的注解

①@PathVariable,用来获取url中的数据;该注解是实现RESTFul最主要的一个注解!

②@GetMapping,接收get方式的请求;等同于@RequestMapping( method=RequestMethod.GET)。

③@PostMapping,接收和处理Post方式的请求;等同于@RequestMapping( method=RequestMethod.POST) 。

④@PutMapping,接收put方式的请求;等同于 @RequestMapping( method=RequestMethod.PUT)。

⑤@DeleteMapping,接收delete方式的请求;等同于 @RequestMapping( method=RequestMethod.DELETE)。

⑥@RestController复合注解, 是@Controller 和@ResponseBody组合;在类的上面使用@RestController , 表示当前类者的所有方法都加入了 @ResponseBody。

 

①在类上使用@RestController复合注解,作用时把当前类交给Spring容器管理,并且在该类下面的每个方法都默认加上@ResponseBody。

②使用GetMapping注解发送get请求,我们知道Restful风格的请求路径中是没有变量的,所以要先使用{变量名}定义路径变量,在使用路径变量@PathVariable注解引用路径变量;例如:queryStudent(@PathVariable(value = "stuId") Integer stuId),表示把路径变量传过来的值赋给stuId变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/227070.html

相关文章:

  • opencv调用模型
  • 交换机、路由器配置
  • Oracle expdp过滤部分表数据
  • Python编程基础(三) | 操作列表
  • ESP32与STM32
  • 【MIMO稳定裕度】基于数据驱动的多输入多输出系统稳定裕度分析
  • ps曝光度调整
  • 408考研逐题详解:2009年第27题
  • 【笔记】Windows 下载并安装 ChromeDriver
  • SpringBoot(六)--- AOP、ThreadLocal
  • Hadoop学习笔记
  • 【算法设计与分析】实验——改写二分搜索算法,众数问题(算法分析:主要算法思路),有重复元素的排列问题,整数因子分解问题(算法实现:过程,分析,小结)
  • Java递归编程中的StackOverflowError问题分析与解决方案
  • 从“敲窗“到“推门“:用Requests库解锁网络数据的“读心术“——Python爬虫入门实战指南
  • SCAU8640--希尔排序
  • 通俗理解“高内聚,低耦合”
  • ipfs下载和安装(windows)
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Sound Board(音响控制面板)
  • 回文字符串
  • 【烧脑算法】不定长滑动窗口:从动态调整到精准匹配以灵活特性实现高效破题
  • 小目标检测:YOLOV7改进之双坐标注意力(DCA)
  • YOLOv10改进|爆改模型|涨点|C2F引入空间和通道注意力模块暴力涨点(附代码+修改教程)
  • 【C盘瘦身】给DevEco Studio中HarmonyOSEmulator(鸿蒙模拟器)换个地方,一键移动给C盘瘦身
  • FreeRTOS实时操作系统学习笔记
  • 文件索引:数组、二叉树、二叉排序树、平衡树、红黑树、B树、B+树
  • 【LeetCode 热题100】BFS/DFS 实战:岛屿数量 腐烂的橘子(力扣200 / 994 )(Go语言版)
  • vscode中的markdown表格列宽
  • js的时间循环的讲解
  • Y1——链式前向星
  • mybatisplus的总结