SpringBoot:实现动态mock接口(server)

其实思路很简单,通过通配符获取请求url的路径,然后配置自己所需要的响应信息,再通过配置HttpServletResponse返回给前端相应的数据。

  • Controller
@RequestMapping("/mock/**")
public void mockTest(HttpServletRequest request, HttpServletResponse response){
    mockService.dynamicMock(request, response);
}
  • Service
@Override
public void dynamicMock(HttpServletRequest request, HttpServletResponse response) {

    String requestPath = request.getServletPath().replace("/mock","");
    // 下面这一行,替换为自己的业务代码,拿到想要的报文,响应代码,响应头等
    MockDO mockDO =  new LambdaQueryChainWrapper<>(mockMapper).eq(MockDO::getPath, requestPath).one();

	// 设置HttpServletResponse结果,这里只以“报文”和“响应代码”举例
    try {
    	// 设置报文
        OutputStream outputStream = response.getOutputStream();
        byte[] dataByteArr = mockDO.getResponseBody().getBytes(StandardCharsets.UTF_8);
        outputStream.write(dataByteArr);
        // 设置响应代码
        response.setStatus(mockDO.getResponseCode());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

我们配置一个mock接口
在这里插入图片描述
状态码设置为405
在这里插入图片描述
然后去请求该接口(当然,这里要带上你自己服务器的url前缀),可以看到我们已经成功拿到了想要的报文信息和响应代码,mock已经可以通过以上方式进行动态配置。
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值