Katharsis Json Api 限制 PATCH

Katharsis Json Api restrict PATCH

我在 Spring 引导服务器中使用 Katharsis 库来自动构建 JSON-API 界面。

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

目前我唯一的想法是向 FilterChain 添加另一个过滤器,以禁止 PATCHing 所需的端点。

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

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

  1. 检查数据库中是否存在具有请求中提供的 ID 的对象 URL
  2. 如果对象存在,抛出UnsupportedOperationException

一个 PATCH 包含一个 ID。
所以你可以检查是否 ID != null 并抛出一个错误。
这样就不用查数据库了
此解决方案假定您不在客户端生成 ID。