当列表为空时,Spring Boot 返回 204 No-Content

我有一个控制器,204-No Content当存储库返回的列表中不存在元素时,它应该返回。在 Spring 中,当我返回一个空列表时,响应状态为200-OK. 我找到了一种方法来解决这个设置我的控制器返回 a Response Entity,但是还有另一种方法吗?我不想抛出异常,因为我的用例中的空列表是有意义的,并且不能使用,@ResponseStatus因为在用例中列表也可以包含元素,所以我需要返回200-OK列表。


我使用这种方法解决了,但我想List<Parcela>在我的控制器中返回一个204-No content


@GetMapping(path = "/contratos/{numeroContrato}/parcelas", params = "status")

ResponseEntity<List<Parcela>> filtrarParcelasPorStatus(@PathVariable String documento,

        @PathVariable String numeroContrato, @RequestParam StatusParcela status) {

    try {

        List<Parcela> parcelasFiltradas = veiculosUsecase.filtrarParcelasPorStatus(documento, numeroContrato,

                status);

        if (parcelasFiltradas.isEmpty()) {

            return new ResponseEntity<>(HttpStatus.NO_CONTENT);

        }

        return new ResponseEntity<>(parcelasFiltradas, HttpStatus.OK);

    }

    catch (ParcelasNaoEncontradasException e) {

        throw new NotFoundException(

                "Nao e possivel listar as parcelas porque nao foi encontrado o contrato para o numero de contrato e cliente informado",

                "Nao e possivel listar as parcelas porque nao foi encontrado o contrato para o numero de contrato e cliente informado",

                HttpStatus.NOT_FOUND.toString(), "External - Veiculos API");

    }

}


白衣染霜花
浏览 797回答 3
3回答

慕妹3242003

我研究了更多,发现这个,它更接近我要找的东西,这样我就不需要检查列表是否为空来返回
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java