我正在开发一个实现REST Web服务的Spring Boot应用程序。
因此,我对必须用于处理数据库中项目插入的URL存在以下疑问。
所以基本上我有这个控制器类:
@RestController
@RequestMapping("/AccomodationMedia")
public class AccomodationMediaController {
..............................................................
..............................................................
..............................................................
@RequestMapping(value = "/doUpload", method = RequestMethod.POST)
public String handleFileUpload(HttpServletRequest request,
@RequestParam MultipartFile[] fileUpload) throws Exception {
System.out.println("handleFileUpload() START");
if (fileUpload != null && fileUpload.length > 0) {
for (MultipartFile currentFile : fileUpload){
System.out.println("Saving file: " + currentFile.getOriginalFilename());
accomodationMediaService.saveAccomodationMedia(currentFile);
}
}
return "Success";
}
}
因此,此类包含 handleFileUpload()方法,该方法处理针对URI的 POST Http请求: / AccomodationMedia / doUpload 以上传文件。
此URI不是休息样式,因为它包含一个动作,在这种情况下,我必须将其作为resoure处理。
我的疑问是:我认为要插入一个新的 AccomodationMedia 资源,我只需要将 POST requesto传递给 / AccomodationMedia URI,因为我在数据库中插入了一个新的 AccountMedia 资源。这是对的吗?
答案 0 :(得分:2)
是的,你是对的,休息应用程序中的每个资源都应该至少有一个URI标识它。当URI有意义并充分描述资源时,它是最好的,例如: -
要在系统中插入(创建)新客户,我们可能会使用: 发布http://www.example.com/customers
要阅读客户ID为#33245的客户: 获取http://www.example.com/customers/33245相同的URI将分别用于PUT和DELETE,以进行更新和删除。