当前位置: 首页 > 知识库问答 >
问题:

Spring WebFlux——处理404的单一方法?

鄂昌胤
2023-03-14

在WebFlux中执行我的第一步时,我很少使用RestController类来公开GET API以通过id从服务器检索资源,例如:

@GetMapping("{id}")
public Mono<Customer> findById( @PathVariable int id )
{
    return Mono.justOrEmpty( service.getById( id ) );
}

接受服务。如果找不到请求的id,getById()将返回NULL,如何将其转换为HTTP代码404和一些自定义消息?

共有1个答案

杜起运
2023-03-14

一种方法是将客户包装在响应中,我认为您的服务返回的是单声道。。如果不是用Mono包装。fromCallable()-

e.g. 
    @GetMapping("/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
    public Mono<ResponseEnity<?>> findById( @PathVariable int id )
    {
        return service.getById(id)
                .map(customer -> ResponseEntity.ok(customer))
                .switchIfEmpty(Mono.just(new ResponseEntity<>("{\"content\":\"false\"}", HttpStatus.NOT_FOUND));
    }

 类似资料:
  • 当没有匹配的路由,这时候可能会需要404处理。框架默认的404处理为状态码设为404,如果需要自定义处理,需要编写自定义处理类。 指定默认处理器 配置文件中: return [ 'beans' => [ 'HttpNotFoundHandler' => [ // 指定默认处理器 'handler'

  • 本文向大家介绍python简单文本处理的方法,包括了python简单文本处理的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python简单文本处理的方法。分享给大家供大家参考。具体如下: 由于有多线程的影响,c++项目打印出来的时间顺序不一致,导致不太好在excel中统计,故使用python写了段脚本来解决之。涉及到如下方面 1. txt文本的读取,utf8的处理 2. 字符串的基

  • 问题内容: 我有2 ng-包括HTML。考虑服务器中是否不存在ng-include src之一。截至目前,它只会加载空白html,并且在浏览器控制台中会显示未找到http-404文件。 因此,在这种情况下,我只想将默认错误页面(服务器中存在)加载到该特定div中,即一半显示默认错误页面,另一部分显示通过nginclude加载的正确div。 我的逻辑是,使用HTTP拦截器拦截所有HTTP调用。无论何

  • 问题内容: 我有一个带有服务的应用程序,该服务包装了我的API调用: 并且我正在使用UI-Router在状态之间进行转换: 我不再使用普通的AngularJS路由器,并且难以理解如何实现404。我可以看到抛出状态被拒绝,但是如何在状态路由器中捕获它呢? 问题答案: 仅当没有其他 路由 匹配时才调用该规则。您真正想要的是拦截事件,即在状态转换中出现问题(例如,解析失败)时触发的事件。您可以在状态更改

  • 本文向大家介绍使用Python处理Excel表格的简单方法,包括了使用Python处理Excel表格的简单方法的使用技巧和注意事项,需要的朋友参考一下 Excel 中的每一个单元,都会有这些属性:颜色(colors)、number formatting、字体(fonts)、边界(borders)、alignment、模式(patterns) 等等。 xlsxwriter 格式处理,将待添加数据转换