我建议您需要添加@ResponseBody
到您的方法或返回值(如 SDR 示例中http://docs.spring.io/spring-data/rest/docs/current/reference/html/#customizing-sdr.overriding-sdr-response-handlers http://docs.spring.io/spring-data/rest/docs/current/reference/html/#customizing-sdr.overriding-sdr-response-handlers)或将您的列表包装在 ResponseEntity 中。
不确定这些方法之间是否存在任何差异,但都应该如此,如 Spring MVC 文档中所述:
“表明返回类型应该直接写入HTTP
响应主体(并且没有放置在模型中,或[被]解释为一种观点
姓名)."
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-responsebody http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-responsebody
考虑到您打印了调试语句,但您得到了 404,看来后一个操作就是发生的情况。
@RequestMapping(value = "/foos/search/byApiName", method = GET)
@ResponseBody
public ResponseEntity<?> findByApiName(String name) {
// ....
}
or,
@RequestMapping(value = "/foos/search/byApiName", method = GET)
public @ResponseBody ResponseEntity<?> findByApiName(String name) {
//....
}
or,
@RequestMapping(value = "/foos/search/byApiName", method = GET)
public ResponseEntity<List<String>> findByApiName(String name) {
//....
return new ResponseEntity<List<String>>(fooNames, HttpStatus.OK);
}