【发布时间】:2016-02-16 00:39:58
【问题描述】:
来自 Spark Java documentation:
response.body("Hello"); // sets content to Hello
@return The content to be set in the response
那么有什么区别呢?有人可以向我解释一下吗?
【问题讨论】:
标签: spark-java
来自 Spark Java documentation:
response.body("Hello"); // sets content to Hello
@return The content to be set in the response
那么有什么区别呢?有人可以向我解释一下吗?
【问题讨论】:
标签: spark-java
然而一个实际的区别是response.body() 只接受String,而在回调中你可以return 任何可以序列化为String 的对象,最重要的是流。
response.body()应该主要用在异常处理和过滤后,回调return用在普通路由中。
【讨论】:
正如您所指出的,它们都可用于设置响应正文。我认为 @return 是典型的 http 端点的一部分。
response.body() 对于异常处理很有用。
exception(NotFoundException.class, (e, request, response) -> {
response.status(404);
response.body("Resource not found");
});
Sparkjava 是一个简单的框架,旨在构建于其之上。 response.body() 使 sparkjava 在您无法访问“返回”对象的上下文中轻松扩展。
【讨论】:
它的作用确实没有区别,但它们都存在,因此很容易在不同的上下文中设置响应体。例如,您可以在异常处理程序甚至过滤器中使用 response.body,但您可能会注意到,return 方式在路由声明中“更好”。
【讨论】: