我对Spring和REST API都是新手,但我现在正试图制作一个。所以从我的控制器,我想返回另一个方法在另一个类中返回的文件列表。代码可能会说更多,然后我可以解释:
@RequestMapping("/backup")
public @ResponseBody List<FileInfo> backupFiles() {
return //Here i want to return the list of files
}
这是我的restController&#34;方法&#34;我想返回一个FileInfo列表,今天它已经存在一个看起来像这样的方法
private List<String> listBackupFiles() {
List<FileInfo> files = util.listBackupFilesInLocalDir(localStorage);
fileNameToSize = files.stream()
.collect(toMap(f -> f.name, f -> f.size));
return files.stream()
.map(f -> f.name)
.collect(toList());
}
所以基本上,我想当有人去/backup
时我希望上面的方法触发并将文件列表返回给我的restController
,然后将其返回给请求者。我不知道这是否可能,或者是否有更好的方法来做到这一点。我会就如何解决这个问题提出任何建议。
答案 0 :(得分:1)
控制器将是:
// @RestController = @Controller + @ResponseBody
@RestController
public class BackupController {
@Autowired
private BackupService backupService;
// you don't need @ResponseBody as you use @RestController
@RequestMapping("/backup")
public List<FileInfo> backupFiles() {
return backupService.listBackupFiles()
}
}
服务界面将是:
public interface BackupService {
public List<FileInfo> listBackupFiles();
}
服务实施将是:
@Service
public class BackupServiceImpl implements BackupService {
public List<FileInfo> listBackupFiles() {
// localStorage come from
// maybe Util has it as static method, else inject it
return util.listBackupFilesInLocalDir(localStorage);
}
}
希望很有帮助:)