SpringBoot与Postman实现REST模拟请求的操作
作者:呢喃北上 发布时间:2022-12-22 04:06:14
前言
Postman是一款Http请求模拟工具.它可以模拟各种Http Request,使用起来十分的方便.
使用背景
利用Spring Boot 快速搭建一个Web应用,利用相同的url,不同的请求方式来调用不同的方法.最后利用Postman工具模拟实现.
实现方法
利用IDEA快速构建应用环境
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
配置SpringBoot文件application.yml
server:
port: 8080
servlet:
context-path: /girl
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 1234
jpa:
hibernate:
ddl-auto: update
show-sql: true
Controller代码
@RestController
public class MyController {
@Autowired
UserDao userDao;
@RequestMapping(value = "/say/{name}")
public @ResponseBody User say(@PathVariable("name") String uname){
User user = new User();
user.setUname(uname);
return userDao.save(user);
}
@GetMapping("/a")
public List<User> geyUserList(){
return userDao.findAll();
}
@PostMapping("/a")
public User addUser(@RequestParam("uname") String uname){
User user = new User();
user.setUname(uname);
return userDao.save(user);
}
@PutMapping(value = "/a/{no}")
public User updateUser(@PathVariable("no") Integer uno,@RequestParam("uname") String uname){
User user = new User();
user.setUno(uno);
user.setUname(uname);
return userDao.save(user);
}
@DeleteMapping(value = "/a/{no}")
public void deleteUser(@PathVariable("no") Integer uno){
userDao.deleteById(uno);
}
}
其中需要说明的几个注解:
GetMapping/PostMapping/PutMapping/DeleteMapping都是组合注解.
学习过SpringMVC的同学都知道用RequestMapping注解来进行映射请求.
而以上四个注解就是基于Http的REST风格的请求+RequestMapping的结合.
分别代表REST风格的CRUD操作.
使用Postman
下载方式:chrome商店搜索Postman即可.(有问题可以来私信我)
如下图所示,Postman界面为我们提供了多种请求方式
举个栗子
利用Put请求使用更新操作
首先选择请求方式为Put,在Body标签下填写要传入的参数,需要注意的是Put请求与其他三种请求方式不一样,要选择x-www-form-urlencoded方式提交,而不是form-data.
spring-boot postman post请求遇到的坑
今天用postman调试接口,发现post请求进不去,一直报错
get请求是可以的,我就纳闷了,难道是我写接口的姿势不对?
后来逐步分析问题,发现问题出在了请求头Header的Content-Type上,
application/x-www-form-urlencoded这个类型,就报错,
必须要改成application/json,
网上查下资料,大概懂了,
后台请求用@RequestBody的话,Content-Type就要设置为application/json,如果用@RequestParam的话,application/x-www-form-urlencoded这个格式也是可以的,就是前端数据以form方式提交
即application/x-www-form-urlencoded的时候传参方式如下
application/json的时候,传参方式就是正常的json格式
来源:https://blog.csdn.net/qq_33764491/article/details/79446327


猜你喜欢
- 这篇文章主要介绍了SpringBoot 使用Mybatis分页插件实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- Class:EcanRMB.cs using System; using System.Collections.Gen
- 类似普通对象,通过new创建字符串对象。String str = new String("Hello"); 内存图如下图
- 一、ObjectContext对象上下文Entity SQL 语言 - ADO.NET | Microsoft 官当文档ObjectCont
- Invoke Phing targets这个插件主要是读取xml形式包括自动化测试打包部署的配置文件,然后根据流程走下来。用ph
- 指定委托那些办理者处理任务节点,也就是只有此办理者才有操作此节点的操作权限1、直接指定流程图配置实现:在流程图属性栏设置Assignee属性
- Spring Boot 的启动原理可以概括为以下几个步骤:加载 Spring Boot 应用程序的启动类根据启动类所在的包路径扫描相关的类根
- LiveData概述LiveData 是一种可观察的数据存储器类: 与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循
- Mybatis selectKey返回新增用户的id值一、需求:新增用户后,同时还要返回当前新增用户的id值id是由数据库的自动增长来实现的
- 前言最近在维护一个运营端的系统,和前端联调的过程中,经常需要排查一些交互上的问题,每次都得看前端代码的传参和后端代码的出参,于是打算给HTT
- 编辑Word文档时,我们有时会突然想增加一段新内容;而将word文档给他人浏览时,有些信息我们是不想让他人看到的。那么如何运用C#编程的方式
- 每一个应用程序,其实都会有分享的需求,比如一键分享一篇文章或者一些活动到微博或者微信亦或者是twitter等社交平台,因为人类是社交动物,而
- 运行远程主机上的shell脚本下面的例子是教给大家如何通过java程序,运行远程主机上的shell脚本。(我讲的不是一个黑客学习教程,而是使
- 线程启动:1.start() 和 run()的区别说明start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。sta
- 前言作为一个写java的使用最多的轻量级框架莫过于spring,不管是老项目用到的springmvc,还是现在流行的springboot,都
- 本文为大家分享了javaweb实现app扫码登录的具体代码,供大家参考,具体内容如下1.web页面主动向服务器索要一张由服务器生成包含维一标
- 如何解决Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X这两天因为项目需要整合spring、struts2、mybatis三大框架,但启动的时候总出现这个错误,困扰我好久,在网上找到的答案都不是我
- 本文实例为大家分享了Flutter Animation实现缩放和滑动动画的具体代码,供大家参考,具体内容如下Animation对象是Flut
- 前言之前写过一篇关于配置中心对配置内容加密解密的介绍:《Spring Cloud构建微服务架构:分布式配置中心(加密解密) 》。在这篇文章中
- 相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式。A