response.body() 和回调返回的对象有什么区别?
What's the difference between response.body() and object returned by the callback?
来自 Spark Java documentation:
response.body("Hello"); // sets content to Hello
并且来自 Route's JavaDoc:
@return The content to be set in the response
那有什么区别呢?有人可以给我解释一下吗?
正如您所指出的,它们都可用于设置响应正文。我认为 @return 是典型 http 端点的一部分。
response.body() 对于异常处理很有用。
exception(NotFoundException.class, (e, request, response) -> {
response.status(404);
response.body("Resource not found");
});
Sparkjava 是一个简单的骨架框架,它应该建立在 Sparkjava 之上。 response.body() 使 sparkjava 在您无权访问 "return" 对象的上下文中可以轻松扩展。
它的作用确实没有区别,但它们都存在,因此很容易在不同的上下文中设置响应正文。例如,您可以在异常处理程序甚至过滤器中使用 response.body
,但您可能会注意到,return
方式在路由声明中是 "nicer"。
但实际的区别是 response.body()
仅接受 String
,而在回调中您可以 return
任何可以序列化为 String
的对象,最重要的是流。
response.body()
应该主要用于异常处理程序和过滤器之后,回调 return
用于普通路由。
来自 Spark Java documentation:
response.body("Hello"); // sets content to Hello
并且来自 Route's JavaDoc:
@return The content to be set in the response
那有什么区别呢?有人可以给我解释一下吗?
正如您所指出的,它们都可用于设置响应正文。我认为 @return 是典型 http 端点的一部分。
response.body() 对于异常处理很有用。
exception(NotFoundException.class, (e, request, response) -> {
response.status(404);
response.body("Resource not found");
});
Sparkjava 是一个简单的骨架框架,它应该建立在 Sparkjava 之上。 response.body() 使 sparkjava 在您无权访问 "return" 对象的上下文中可以轻松扩展。
它的作用确实没有区别,但它们都存在,因此很容易在不同的上下文中设置响应正文。例如,您可以在异常处理程序甚至过滤器中使用 response.body
,但您可能会注意到,return
方式在路由声明中是 "nicer"。
但实际的区别是 response.body()
仅接受 String
,而在回调中您可以 return
任何可以序列化为 String
的对象,最重要的是流。
response.body()
应该主要用于异常处理程序和过滤器之后,回调 return
用于普通路由。