使用 spring-boot 和 spring-data 更正 PUT 方法
Correct PUT method with spring-boot and spring-data
我正在使用 Spring 引导和 Spring 数据来构建 RESTful API。我有两个实体:Site
和 Floor
。一个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.class
有 id
和 name
。
当我使用 PUT 方法将以下 JSON 发送到 /api/sites
...
{
"id": 1,
"name": "SITE 1"
}
...我按预期更新了 Site
实体。
但是我想知道这个实现是否正确?
我不应该在要用 PUT 更新的 URI 中指定站点的 ID 吗?像这样:/api/sites/{id}
?
在我看来,您可以使用 /api/sites/{id}
发送 PUT 请求,在控制器方法中,您可以使用 id 从存储库中获取实体,更改 属性 "name" 然后将其保存在存储库中。
我正在使用 Spring 引导和 Spring 数据来构建 RESTful API。我有两个实体:Site
和 Floor
。一个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.class
有 id
和 name
。
当我使用 PUT 方法将以下 JSON 发送到 /api/sites
...
{
"id": 1,
"name": "SITE 1"
}
...我按预期更新了 Site
实体。
但是我想知道这个实现是否正确?
我不应该在要用 PUT 更新的 URI 中指定站点的 ID 吗?像这样:/api/sites/{id}
?
在我看来,您可以使用 /api/sites/{id}
发送 PUT 请求,在控制器方法中,您可以使用 id 从存储库中获取实体,更改 属性 "name" 然后将其保存在存储库中。