0

我在我的 Spring Boot 服务器中使用 Katharsis 库来自动构建 JSON-API 接口。

假设我有一个端点(资源)/资源,我想为此提供 POST 方法(以创建新资源)但限制 PATCH(以限制资源更新)。同时,io.katharsis.repository.ResourceRepository 只提供了 save() 方法,它同时适用于 POST 和 PATCH。

我目前唯一的想法是向 FilterChain 添加另一个过滤器,这将不允许 PATCHing 所需的端点。

有没有更好(即更短或更优雅)的方法来实现这一点?

4

2 回答 2

0

要禁用 PATCH 方法,您应该按照以下步骤操作:

  1. 检查数据库中是否存在具有请求 URL 中提供的 ID 的对象
  2. 如果对象存在,则抛出UnsupportedOperationException
于 2016-04-22T20:31:16.740 回答
0

PATCH 包含一个 ID。
因此,您可以检查 ID != null 并改为抛出错误。
这样你就不需要检查数据库了。
此解决方案假定您不在客户端生成 id。

于 2016-10-06T12:53:42.987 回答