我正在我的Spring Boot服务器中使用Katharsis库来自动构建JSON-API接口。
假设我有一个端点(resource)/resources,我想为它提供POST方法(创建新资源),但限制PATCH(限制资源更新)。同时,io.katharsis.repository.ResourceRepository只提供save()方法,该方法适用于POST和PATCH。
我目前唯一的想法是向FilterChain添加另一个过滤器,该过滤器将禁止PATCH所需的端点。
有没有更好的方法(即更短或更优雅)来实现这一点?
要禁用PATCH方法,您应该按照以下步骤操作:
- 检查数据库中是否存在在请求的URL中提供ID的对象
- 如果对象存在,则抛出UnsupportedOperationException
PATCH包含ID。
所以你可以检查ID!=null并引发错误
通过这种方式,您不需要检查数据库
此解决方案假定您不在客户端上生成id。