记IDE下的springboot接口通信及参数传递简介

所用到的注解简介

@ResponseBody:这个注解会将你的返回值自动转成JSON格式
@RequestBody:这个注解接收的是JSON格式的传参,如果传参是JSON格式就要打上这个
@GetMapping():这个代表Get方式的请求,如果参数名称、参数个数或请求方式不对应就会请求失败
@PostMapping():这个代表Post方式的请求
@RequestMapping():这个是Get和Post方式的结合,系统会自动匹配Get或Post方式

Get方式请求

搭好springboot环境,可以参照之前的环境搭建

单参数

@Controller//这个代表Controller层注解
public class DemoController
{
    @ResponseBody//返回值转成JSON格式
    @GetMapping(value = "/test")//Get请求  value值代表请求路径 例如这个的最后请求路径就是http://localhost:8080/test
    public String test( String value){//请求参数为value
        return value;//直接将参数返回
    }
}

传参及测试结果:
在这里插入图片描述

多个参数

@Controller//这个代表Controller层注解
public class DemoController
{
    @ResponseBody//返回值转成JSON格式
    @GetMapping(value = "/test")//Get请求  value值代表请求路径 例如这个的最后请求路径就是http://localhost:8080/test
    public String test(String value, Integer id,String date){//请求参数为value
        System.out.println("value值---->"+value);
        System.out.println("id值---->"+String.valueOf(id));
        System.out.println("date值---->"+String.valueOf(date));
        return "请求成功";
    }
}

传参及测试结果:
在这里插入图片描述

Post方式请求

1.环境依旧用相同的,提前建立好一个测试的实体类
User实体类:(这边是用lombot插件自动生成了set和get方法,没有的请手动添加set和get方法)
在这里插入图片描述

数组形式传参

@Controller//这个代表Controller层注解
public class DemoController
{
    @ResponseBody//返回值转成JSON格式
    @PostMapping(value = "/test")//Post请求  value值代表请求路径 例如这个的最后请求路径就是http://localhost:8080/test
    public String test(Integer[] ids,String[] values){//请求参数
        System.out.println("Integer数组传参如下:");
        for (Integer id:ids){
            System.out.println("---->"+id);
        }
        System.out.println("String数组传参如下:");
        for (String value:values){
            System.out.println("---->"+value);
        }
        return "请求成功";
    }
}

传参及结果如下:
在这里插入图片描述

实体类传参

@Controller//这个代表Controller层注解
public class DemoController
{
    @ResponseBody//返回值转成JSON格式
    @PostMapping(value = "/test")//Post请求  value值代表请求路径 例如这个的最后请求路径就是http://localhost:8080/test
    public User test(User user){//请求参数
        System.out.println(user.toString());
        return user;
    }
}

传参及测试结果:
在这里插入图片描述
这里可以看出Post请求中参数是自动对应的,而且是可以不写的,不写自动为空,而Get则会直接请求失败

JSON格式传参

单实体

@Controller//这个代表Controller层注解
public class DemoController
{
    @ResponseBody//返回值转成JSON格式
    @PostMapping(value = "/test")//Post请求  value值代表请求路径 例如这个的最后请求路径就是http://localhost:8080/test
    public User test(@RequestBody User user){//请求参数  //json传参需要加@RequestBody
        System.out.println(user.toString());
        return user;
    }
}

传参及结果:
如果所传数据是json则请求头需要设置Content-Type:application/json,我用的测试工具是postman,所以这样设置:
在这里插入图片描述
值则是以json格式写在body里面
在这里插入图片描述

多实体

@Controller//这个代表Controller层注解
public class DemoController
{
    @ResponseBody//返回值转成JSON格式
    @PostMapping(value = "/test")//Post请求  value值代表请求路径 例如这个的最后请求路径就是http://localhost:8080/test
    public List<User> test(@RequestBody List<User> user){//请求参数  //json传参需要加@RequestBody
        for (User user1:user){
            System.out.println(user1.toString());
        }
        return user;
    }
}

传参及测试结果:
在这里插入图片描述

嵌套类型

实际情况中可能会经常遇到一对多的嵌套关系,比如:一个班级有多个学生、一个订单号对应多个产品。。。。
首先我们新建一个实体类
ClassBean
在这里插入图片描述
controller代码如下

@Controller//这个代表Controller层注解
public class DemoController
{
    @ResponseBody//返回值转成JSON格式
    @PostMapping(value = "/test")//Post请求  value值代表请求路径 例如这个的最后请求路径就是http://localhost:8080/test
    public ClassBean test(@RequestBody ClassBean classBean){//请求参数  //json传参需要加@RequestBody
        System.out.println("id:"+classBean.getId());
        System.out.println("teacherName"+classBean.getTeacherName());
        System.out.println("user如下:");
        for (User user:classBean.getUsers()){
            System.out.println(user);
        }
        return classBean;
    }
}

传参及测试结果:
在这里插入图片描述

路径传参

@Controller//这个代表Controller层注解
public class DemoController
{
    @ResponseBody//返回值转成JSON格式
    @RequestMapping(value = "/test/{name}")//这个会自动对应请求类型  value值代表请求路径 例如这个的最后请求路径就是http://localhost:8080/test
    public String test(@PathVariable("name") String name){//请求参数 
        System.out.println(name);
        return name;
    }
}

传参及测试结果:
在这里插入图片描述
本文主要记载Get和Post这两种常用通信方式,没有过多的言语介绍,如需了解透彻请自行查阅资料

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值