SpringMVC -- REST风格开发,RESTful快速开发、RESTful注解开发

简介: SpringMVC -- REST风格开发,RESTful快速开发、RESTful注解开发

一、REST简介

  • REST(Representational State Transfer),表现形式状态转换
  • 传统风格资源描述形式
  • http://localhost/user/getById?id=1
  • http://localhost/user/saveUser
  • REST风格描述形式
  • http://localhost/user/1
  • http://localhost/user
  • 优点:
  • 隐藏资源的访问行为,无法通过地址得知对资源是何种操作
  • 书写简化

1.1REST风格简介

  • 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
  • http://localhost/users 查询全部用户信息 - - GET(查询)
  • http://localhost/users/1 查询指定用户信息 - - GET(查询)
  • http://localhost/users 添加用户信息 - - POST(新增/保存)
  • http://localhost/users 修改用户信息 - - PUT(修改/更新)
  • http://localhost/users/1删除用户信息 - - DELETE(删除)
  • 上述行为是约定方式,约定不是规范,可以打破,所以称 REST风格,而不是REST规范
  • 描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源。
  • 根据REST风格对资源进行访问叫做RESTful

二、RESTful入门案例

2.1设定http请求动作(动词)

@RequestMapping(value = "/users", method = RequestMethod.GET)
    @ResponseBody
    public String save() {
        System.out.println("use save...");
        return "'module':'user save'";
    }
//修改
    @RequestMapping(value = "/users", method = RequestMethod.PUT)
    @ResponseBody
    public String update(@RequestBody User user) {
        System.out.println("use update..." + user);
        return "'module':'user update'";
    }

2.2设定请求参数(路径变量)

//带参数
    @RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
    @ResponseBody
    public String delete(@PathVariable int id) {
        System.out.println("use delete..." + id);
        return "'module':'user delete'";
    }

  • 名称:@RequestMapping
  • 类型:方法注解
  • 位置:SpringMVC控制器方法定义上方
  • 作用:设置当前控制器方法请求访问路径
  • 范例:
@RequestMapping(value = "/users", method = RequestMethod.GET)
    @ResponseBody
    public String save() {
        System.out.println("use save...");
        return "'module':'user save'";
    }
  • 属性:
  • value(默认):请求访问路径
  • method:http请求动作,标准动作(GET/POST/PUT/DELETE)

  • 名称:@PathVariable
  • 类型:形参注解
  • 位置:SpringMVC控制器方法形参前面
  • 作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名相同
  • 范例:
@RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
    @ResponseBody
    public String delete(@PathVariable int id) {
        System.out.println("use delete..." + id);
        return "'module':'user delete'";
    }

  • 区别:
  • @RequestParam用于接收url地址传参或表单传参
  • @ResponseBody用于接收json数据
  • @PathVariable用于接收路径参数,使用(参数名称)描述路径参数
  • 应用:
  • 后期开发中,发送请求参数超过1个小时,以json格式为主, @ResponseBody应用较广
  • 如果发送非json格式数据,选用 @RequestParam接收请求参数
  • 采用RESTful进行开发,当参数数量较少时,例如一个,可以采用@PathVariable接收请求路径变量,通常用于传递id值

三、RESTful快速开发

3.1RestController注解

  • 名称:@RestController
  • 类型:类注解
  • 位置:基于SpringMVC的RESTful开发控制器类定义上方
  • 作用:设置当前控制器为RESTful风格,等同于@Controller@ResponseBody两个注解组合功能
  • 范例:
@RestController
@RequestMapping("/address")
public class BookController {
}

3.2方法注解

  • 名称:@GetMapping@PostMapping@DeleteMapping@PutMapping
  • 类型:方法注解
  • 位置:基于SpringMVC的RESTful开发控制器方法定义上方
  • 作用:设置当前控制器方法请求路径与请求动作,每种对应一个请求动作,例如@GetMapping对应GET请求
  • 范例:
@RestController
@RequestMapping("/address")
public class BookController {
    @GetMapping
    public String save() {
        System.out.println("use save...");
        return "'module':'user save'";
    }
    @DeleteMapping
    public String delete() {
        System.out.println("use delete...");
        return "'module':'user delete'";
    }
    //修改
    @PutMapping
    public String update(@RequestBody Address address) {
        System.out.println("use update..." + address);
        return "'module':'user update'";
    }
    @GetMapping("{id}")
    public String getById(@PathVariable int id){
        System.out.println("address getById..." + id);
        return "'module':'address getById'";
    }
}
  • value:默认访问路径

总结

通过这篇文章,基于SpringMVC的RESTful快速开发就介绍到这里了,欢迎各位小伙伴点赞+关注!!!

相关文章
|
11月前
|
缓存 前端开发 API
深入浅出:后端开发中的RESTful API设计原则
【10月更文挑战第43天】在数字化浪潮中,后端开发如同搭建梦想的脚手架,而RESTful API则是连接梦想与现实的桥梁。本文将带你领略API设计的哲学之美,探索如何通过简洁明了的设计,提升开发效率与用户体验。从资源定位到接口约束,从状态转换到性能优化,我们将一步步构建高效、易用、可维护的后端服务。无论你是初涉后端的新手,还是寻求进阶的开发者,这篇文章都将为你的开发之路提供指引。让我们一起走进RESTful API的世界,解锁后端开发的新篇章。
|
11月前
|
JSON API 数据格式
探索后端开发:从零构建简易RESTful API
在数字时代的浪潮中,后端开发如同搭建一座桥梁,连接着用户界面与数据世界。本文将引导读者步入后端开发的殿堂,通过构建一个简易的RESTful API,揭示其背后的逻辑与魅力。我们将从基础概念出发,逐步深入到实际操作,不仅分享代码示例,更探讨如何思考和解决问题,让每一位读者都能在后端开发的道路上迈出坚实的一步。
|
11月前
|
JSON API 开发者
构建高效API:后端开发中的RESTful最佳实践####
在数字化时代,API作为不同系统间通信的桥梁,其重要性日益凸显。本文将深入探讨RESTful API的设计原则与最佳实践,通过实际案例分析,揭示如何构建高效、可维护且易于使用的API接口,助力后端开发者提升项目质量与用户体验。 ####
|
11月前
|
JSON 缓存 API
探索后端开发中的RESTful API设计原则
【10月更文挑战第41天】在后端开发的广阔天地中,API的设计如同绘制一幅精细的地图,指引着数据的流向和前端的交互。本文将带你走进RESTful API的世界,一起探索如何用简洁高效的设计原则来构建一个清晰、可维护且易于理解的API结构。我们将从RESTful API的基础概念出发,通过实际案例分析,揭示如何在实践中应用这些设计原则,并讨论如何在复杂的业务逻辑中保持API的简洁性和一致性。
|
11月前
|
安全 测试技术 API
构建高效RESTful API:后端开发的艺术与实践####
在现代软件开发的浩瀚星空中,RESTful API如同一座桥梁,连接着前端世界的绚丽多彩与后端逻辑的深邃复杂。本文旨在探讨如何精心打造一款既高效又易于维护的RESTful API,通过深入浅出的方式,剖析其设计原则、实现技巧及最佳实践,为后端开发者提供一份实用的指南。我们不深入晦涩的理论,只聚焦于那些能够即刻提升API品质与开发效率的关键点,让你的API在众多服务中脱颖而出。 ####
110 0
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
前端开发 Java 关系型数据库
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
195 0
|
前端开发 Java Go
Spring MVC 和 Spring Boot 的区别
Spring MVC 和 Spring Boot 的区别
358 0
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
358 1
|
前端开发 Java 应用服务中间件
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)