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

Spring Webflux Mono总是以成功响应进行响应

邹玄裳
2023-03-14
    public Mono<ServerResponse> deleteProduct(ServerRequest request) {
     String id = request.pathVariable("id");
     Mono<Product> productMono = this.repository.findById(id);
     return productMono
            .flatMap(existingProduct ->
                    ServerResponse.noContent()
                            .build(productService.delete(existingProduct))
            );
}
     * Build the response entity with no body.
     * The response will be committed when the given {@code voidPublisher} completes.
     * @param voidPublisher publisher publisher to indicate when the response should be committed
     * @return the built response
     */
    Mono<ServerResponse> build(Publisher<Void> voidPublisher);

提前谢谢你。

共有1个答案

乌杰
2023-03-14

问题是由于使用VoidPublisher引起的。如果您使用void publisher创建ServerResponse,它只会返回HTTP200,甚至是您的下游完成错误信号。它只是不关心你的流如何完成,它只关心下游的完成。

如果您想在构建响应时处理下游错误,只需简单使用

 ServerResponse.noContent()
    .body(productService.delete(existingProduct), Void.class)

现在,当任何错误发生在下游,服务器将响应错误。

 类似资料:
  • 授权服务器颁发访问令牌和可选的刷新令牌,通过向HTTP响应实体正文中添加下列参数并使用200(OK)状态码构造响应: access_token 必需的。授权服务器颁发的访问令牌。 token_type 必需的。如7.1节所述的颁发的令牌的类型。值是大小写不敏感的。 expires_in 推荐的。以秒为单位的访问令牌生命周期。例如,值“3600”表示访问令牌将在从生成响应时的1小时后到期。如果省略,

  • 问题内容: 我已经使用jQuery和AJAX几周了,并且在调用完成后,我看到了两种“继续”脚本的不同方式:和。 从jQuery文档的提要中,我们得到: .done():说明:添加要解析Deferred对象时要调用的处理程序。 成功:(。ajax()选项):如果请求成功,则要调用的函数。 因此,在AJAX调用完成/解决之后,两者都要做一些事情。我可以随机使用其中之一吗?有什么区别?何时使用一种替代另

  • 在Laravel5.8项目中,我尝试使用jQueryAjax函数将get请求发送到其中一个项目路由url,响应状态为200,这意味着请求已成功执行,但每次该函数返回当前视图HTML时都会响应 我试图删除我的php函数中的所有代码,只返回一个JSON响应,但仍然得到超文本标记语言我还试图将数据类型更改为JSON或文本,并将缓存设置为false,但响应仍然相同我甚至试图评论所有功能路由请求和相同的响应

  • API的成功响应具有json格式(基于avro模式)。对于错误,它是否应该为异常定义另一种格式(模式)?或者成功的响应应该包括错误部分?发生错误时,将其他部分留空,只填充错误。 这更像是一个内部应用编程接口,需要定义各种自定义异常消息。它是否应该对所有此类应用程序错误使用相同的HTTP状态代码? 这些决定如何影响OPEN API(SWAGGER)?

  • 大家好,, 我的用户注册应用程序有问题,希望你们能帮我弄清楚发生了什么: 我使用的是MongoDb、Express、Angular和NodeJs,这就是它在app.js中的外观(我还包括Firefox和Chrome中显示的错误截图)。先谢谢你

  • 问题内容: 我是Go的新手,我正在尝试构建一个简单的HTTP服务器。但是我在JSON响应中遇到了一些问题。我编写了以下代码,然后尝试邮递员发送一些JSON数据。但是,我的邮递员总是得到空响应,而is 。然后,我在http://www.alexedwards.net/blog/golang-response- snippets#json中 检查了一个示例。我复制并粘贴了示例,并且效果很好。但是我看不