【问题标题】:Is it better to pass back String or Object in the ResponseEntity<>?在 ResponseEntity<> 中传回字符串或对象会更好吗?
【发布时间】:2017-11-13 20:04:49
【问题描述】:

我有一个返回 ResponseEntity 的控制器。现在我已经修改了这段代码并使用 ObjectMapper 添加了一堆过滤器。在此更改之后,我将返回一个字符串作为响应。

示例代码如下:

public ResponseEntity<String> search() {
SearchResult searchResults = service.search(criteria);
objectMapper.setFilterProvider(new SimpleFilterProvider()
                .addFilter("firstFilter", new FirstFilter())
                .addFilter("secondFilter",new SecondFilter()));
        return new ResponseEntity<>(objectMapper.writeValueAsString(searchResults), OK);
}

现在我的问题是,这是一种很好的方法吗?有没有什么影响。将实际 Object 与它的 String 变体发送回去有什么区别。任何帮助表示赞赏。谢谢!

【问题讨论】:

  • 使用ResponseEntity 对象,您可以对缓存头进行一些微调控制,例如Cache-controlPragma 等,
  • 哦,好吧,假设我不需要任何这些附加功能,像这样使用它还有其他含义吗?
  • 所以,我没有详尽的清单。但是,ResponseEntity 主要与RestControllerRestTemplate 一起使用。如果你想返回一个视图,那么返回字符串是可以的。我不知道你会对响应做什么。这在很大程度上取决于这种用法。

标签: json spring spring-mvc jackson spring-rest


【解决方案1】:

ResponseEntity&lt;T&gt; 代表整个 HTTP 响应。除了实体本身,它的 API 还允许您为响应设置标头和状态代码。

从长远来看,返回一个普通的 String 不会给您太大的灵活性。如果需要在响应中添加header,例如需要更改方法返回类型。

【讨论】:

    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    相关资源
    最近更新 更多