我有一个REST服务。您可以通过PUT点击终点。 Put应该更新资源(如果存在),否则创建它。该服务使用Java 8和Spring Boot。
/**
* Called by PUT request on HTTP REST endpoint
* Checks if resource exists. If it does, call updateResource, if not call insertResource
**/
insertUpdateHandler
/**
* Inserts record
**/
insertResource
/**
* Checks if record exists, if so update resource
*/
updateResource
我的问题是,如果记录存在,我会检查两次。
我看到了5种解决方案。但可能还有更多:
1.使用不同的端点进行创建和更新,但对两个使用PUT
2.仅将PATCH用于更新,PUT用于创建
3.接受我检查两次相同的记录
4.将找到的属性作为可选参数传递。我重载/可选参数在Java中会非常混乱。意见?
5.将insertOrUpdate放在一个方法中。我不喜欢这样,因为它会降低可扩展性。我无法对所有内容使用相同的更新方法。