【问题标题】:What's the difference between response.body() and object returned by the callback?response.body() 和回调返回的对象有什么区别?
【发布时间】:2016-02-16 00:39:58
【问题描述】:

来自 Spark Java documentation

response.body("Hello");        // sets content to Hello

来自Route's JavaDoc

@return The content to be set in the response

那么有什么区别呢?有人可以向我解释一下吗?

【问题讨论】:

    标签: spark-java


    【解决方案1】:

    然而一个实际的区别是response.body() 只接受String,而在回调中你可以return 任何可以序列化为String 的对象,最重要的是流。

    response.body()应该主要用在异常处理和过滤后,回调return用在普通路由中。

    【讨论】:

      【解决方案2】:

      正如您所指出的,它们都可用于设置响应正文。我认为 @return 是典型的 http 端点的一部分。

      response.body() 对于异常处理很有用。

      exception(NotFoundException.class, (e, request, response) -> {
          response.status(404);
          response.body("Resource not found");
      });
      

      Sparkjava 是一个简单的框架,旨在构建于其之上。 response.body() 使 sparkjava 在您无法访问“返回”对象的上下文中轻松扩展。

      【讨论】:

        【解决方案3】:

        它的作用确实没有区别,但它们都存在,因此很容易在不同的上下文中设置响应体。例如,您可以在异常处理程序甚至过滤器中使用 response.body,但您可能会注意到,return 方式在路由声明中“更好”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-24
          • 2015-03-31
          • 2011-09-29
          • 1970-01-01
          • 2016-10-20
          • 1970-01-01
          • 2021-10-11
          相关资源
          最近更新 更多