我目前有一个使用Spring控制器和Thymeleaf的项目来创建一个小浏览器应用程序.控制器类声明为
@Controller public class MyController {
Run Code Online (Sandbox Code Playgroud)
在控制器内部,我将GET定义为
@RequestMapping(value = "/foobars", method = RequestMethod.GET)
String index(Model model, --- more params ---) {
//call repository and get foobarsList
//model.addAttribute("foobars", foobarsList);
...
return "foobars/foobarThymeleafTemplate"
}
Run Code Online (Sandbox Code Playgroud)
的通话信息库,并得到foobarList是一个呼叫MongoRepository定义为:
public interface FoobarRepository extends MongoRepository< ... cut for brevity> {
@RestResource(rel = "by-id")
Marker findMarkerById(String id);
... additional @RestResources cut for brevity ...
}
Run Code Online (Sandbox Code Playgroud)
同样,浏览器应用程序看起来很棒.该GET调用存储库,填充模式与foobars的列表,并Thymeleaf做这件事与该名单.
问题:现在我需要从Android应用程序访问相同的数据,我更喜欢使用REST并在Android应用程序中使用JSON.我想保留Thymeleaf,但如有必要,将重构浏览器应用程序.
问题:有没有办法以某种方式使用相同的@Controller或者我必须使用带有/ restFoobars端点的@RestController维护第二个FoobarRestController?第二个REST控制器确实工作,但它似乎有点草率......糟糕的设计.
你的想法和建议?
再次感谢.-丰富