修复线上问题,引起新的bug-总结

来源:互联网 发布:施工软件哪个好 编辑:程序博客网 时间:2024/05/18 05:25

由于没有对新引入的参数Long actShopId, String shopProdId 做非空判断,就直接拼接,导致拼接的请求url报404错误

修复前:

@RequestMapping(value = "/virtual/views/{prod}")

    public String viewsIndex(HttpServletRequest request, HttpServletResponse response, @PathVariable("prod") String prod, Long actShopId, String shopProdId) {

    return "redirect:/views/" + prod + "?actShopId=" + actShopId + "&shopProdId=" + shopProdId;

    }

当参数为空时,得出的请求url为:

http://192.168.50.29/views/40798?actShopId=null&shopProdId=null

 

修复后:

@RequestMapping(value = "/virtual/views/{prod}")

    public String viewsIndex(HttpServletRequest request, HttpServletResponse response, @PathVariable("prod") String prod, Long actShopId, String shopProdId) {

       if(AppUtils.isNotBlank(actShopId)&&AppUtils.isNotBlank(shopProdId)){

           return "redirect:/views/" + prod + "?actShopId=" + actShopId + "&shopProdId=" + shopProdId;

       }

        return "redirect:/views/" + prod;

}

 

总结:修复线上问题的时候,尽量考虑到接口不影响到之前的操作,即是所谓的向上兼容。

可以列出我们修复后接口可能出现的情况。然后去分别调试我们的接口。