【问题标题】:How can I tell Spring Data REST to return an error code on an invalid endpoint?如何告诉 Spring Data REST 在无效端点上返回错误代码?
【发布时间】:2021-01-06 00:52:44
【问题描述】:

我们最近遇到了一个错误,我们试图将 Spring Boot 应用程序中的两个实体与 DELETE 解除关联,但我们遇到了错误的端点,例如/api/school/student 而不是 /api/student/school/。由于 Student 是这里的拥有实体,所以点击第一个端点什么也没做,但仍然返回 204 状态码,这让我们误以为没问题。有没有办法让它返回一个 4xx 代码?

【问题讨论】:

    标签: java spring spring-boot spring-data-jpa spring-data-rest


    【解决方案1】:

    似乎有一个控制器接受所有未解析的 url 并返回一个没有内容的结果。您的代码中的内容如下:

    @GetMapping("/**") or @GetMapping("/api/**")
    

    删除它,您将收到 404 错误消息。

    【讨论】:

    • 我们没有这样的控制器,我们使用 Spring Data REST/JPA 来“生成”端点来创建实体。问题是其中一些生成的端点实际上并不能正常工作,但仍然返回 204,因此有时很难检测到。
    【解决方案2】:

    您可以为该端点创建一个仅返回 4xx 的控制器方法。

    或者您可以修改您的架构,使双方都可以管理多对多关系。

    【讨论】:

    • 我考虑过这一点,但主要问题是这个错误可能出现在我们不知道的任意数量的地方,在我们找到这些错误所在之前,这将无济于事。跨度>
    猜你喜欢
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2016-07-11
    • 2020-02-17
    • 2022-06-19
    • 2013-08-30
    相关资源
    最近更新 更多