使用 spring-boot 和 spring-data 更正 PUT 方法

Correct PUT method with spring-boot and spring-data

我正在使用 Spring 引导和 Spring 数据来构建 RESTful API。我有两个实体:SiteFloor。一个Site中有几个Floors。我想知道制作 PUT 方法的正确方法是什么?到目前为止,我在 SiteController.class:

中有这个方法
@RequestMapping(method = RequestMethod.PUT, value = "/api/sites")
    public void updateSite(@RequestBody Site site){
        sitesService.updateSite(site);
    }

这是SitesService.class:

public void updateSite(Site site) {
        sitesRepository.save(site);
    }

模型 Site.classidname

当我使用 PUT 方法将以下 JSON 发送到 /api/sites...

{
  "id": 1,
  "name": "SITE 1"
}

...我按预期更新了 Site 实体。

但是我想知道这个实现是否正确? 我不应该在要用 PUT 更新的 URI 中指定站点的 ID 吗?像这样:/api/sites/{id}?

在我看来,您可以使用 /api/sites/{id} 发送 PUT 请求,在控制器方法中,您可以使用 id 从存储库中获取实体,更改 属性 "name" 然后将其保存在存储库中。