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

【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.xdnf.cn/news/10581.html

相关文章:

  • 概率统计:AI大模型的数学支柱
  • Linux--进程概念
  • 【redis实战篇】第七天
  • 03- javascript的运行原理
  • 启动metastore时报错MetaException(message:Version information not found in metastore
  • 海底三维可视化平台
  • 使用Python进行函数作画
  • azure devops 系列 - 常用的task
  • C++面向对象编程:类与对象详解
  • CppCon 2014 学习:(Costless)Software Abstractions for Parallel Architectures
  • 已有的前端项目打包到tauri运行(windows)
  • Python应用range函数初解pro
  • arc3.2语言sort的时候报错:(sort < `(2 9 3 7 5 1)) 需要写成这种:(sort > (pair (list 3 2)))
  • EXCEL--累加,获取大于某个值的第一个数
  • DeepSeek模型高级应用:提示工程与Few-shot学习实战指南
  • 【深度学习-Day 21】框架入门:神经网络模型构建核心指南 (Keras PyTorch)
  • MySQL中的字符串分割函数
  • Python 训练营打卡 Day 33-神经网络
  • tex中的表格4:自动表格宽度自动换行tabularx宏包
  • 结构化控制语言(SCL) 与梯形图(LAD)相互转换的步骤指南
  • CppCon 2014 学习:EFFICIENCY PERFORMANCE ALGORITHMS DATA STRUCTURES
  • Linux中的System V通信标准-共享内存、消息队列以及信号量
  • 工作流引擎-18-开源审批流项目之 plumdo-work 工作流,表单,报表结合的多模块系统
  • isp中的 ISO代表什么意思
  • 【机器学习基础】机器学习入门核心算法:多分类与多标签分类算法
  • Vue3(watch,watchEffect,标签中ref的使用,TS,props,生命周期)
  • vue · 路由传参query和params
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Sound Board(音响控制面板)
  • 【Linux网络】传输层TCP协议
  • Sxer.Base.Debug(打印调试)