SpringBoot之第一个Restfu示例

博客主要讲述开始研究Control层如何接收RestFul的Http请求,介绍了使用@RestController、@RequestMapping、@PostMapping、@RequestBody等注解处理不同请求情况,还提到可用swagger - ui测试接口,以及应答json字符串、抛出异常改变返回值等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面把数据库研究了差不多了。。。。今天开始研究Control层了。如何接收RestFul的Http请求。。

这里在类上面加上@RestController 这个类就可以接收rest的请求了。

但是http请求有千万种,我们如何知道哪个请求进入哪个类呢?

这里就需要引入另外一个注解

@RequestMapping("/app")

这个注解就是说http的url中/app的进入这个分支

比如/app/login 进入哪个分支呢?

我们再写一个函数,把@PostMapping("/login") 把注解加在上面。

如果我在请求的时候,带有一个json呢?

这里又要引入一个注解

@RequestBody

而且后面还能跟一个类,这个类就是已经把json反序列化的类。

好了,下面试一下 定义一个登陆类

@Data
@ApiModel(value = "登录表单")
public class formlogin {

    @ApiModelProperty(value = "登陆名")
    @NotBlank(message="登陆名")
    private  String user;
    @ApiModelProperty(value = "密码")
    @NotBlank(message="密码不能为空")
    private  String psw;
}

再写个入口处理类

@RestController
@RequestMapping("/app")
public class firtsRestful {

    @PostMapping("/login")
    @ApiOperation("登录")
    public  String Login(@RequestBody formlogin formlogin )
    {
        System.out.println("user" +formlogin.getUser());
        System.out.println("psw"+formlogin.getPsw());


        return  "11";
    }
}

突然发现swagger-ui居然还能测试接口。。。。

可以编辑发送的数据:

下面是返回的数据

一切完美。

 

另外,应答也可以应答json字符串,我们只需要定义一个HashMap就可以了。看下面的示例

    @PostMapping("/login")
    @ApiOperation("登录")
    public HashMap<String,Object> Login(@RequestBody formlogin formlogin )
    {
        System.out.println("user" +formlogin.getUser());
        System.out.println("psw"+formlogin.getPsw());
        System.out.println(formlogin);
        HashMap<String,Object> Rsp = new HashMap<>();
        Rsp.put("token", 123);
        Rsp.put("expire", "3600");
        return  Rsp;
    }

应答如下:

 这里注意一下,字符串和整数在json中的区别。字符串是有“”号的,而整数是没有的。

 

还可以实现抛出异常,这样返回值就不是200了,看下面的例子

增加了一个异常

int aa =0;
        if ((aa == 0))
        {
            throw new Exception("未添加资产,请重新添加");
        }

看测试结果:返回的是500 然后Message就是异常的字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值