【问题标题】:Web frontend for REST service api in spring-bootspring-boot 中 REST 服务 api 的 Web 前端
【发布时间】:2017-03-14 19:07:01
【问题描述】:

我有一个 spring boot 应用程序,我在其中创建了一个 RESTful api,使用 @RestController,它允许我在 mysql 后端维护设备列表(添加/删除/更新)。

我现在正在尝试创建一个允许我使用此 API 的 Web 前端,并发现 Spring MVC + Thymeleaf 适合于此,因为它使我能够使用设备详细信息动态填充视图。

我是否可以从 MVC 控制器代码调用 REST API?所以例如

  1. /upload/devices 是一个 MVC 端点,它会为我提供一个表单,我可以在其中上传设备列表
  2. 当我在表单上点击“提交”时,MVC 控制器后端将 POST 到 /api/upload/devices REST API 并返回视图,其中设置了上传时通过/失败的参数

有可能这样做还是我在做一些糟糕的设计。

我有一个使用 @restcontroller 的纯 REST API 的原因是,我可以从需要 json 响应(例如设备的 json 列表)而不是视图的其他应用程序调用它们。

我还可以考虑实现一个纯 Angular 的前端来调用 REST API,但这意味着我不能使用我喜欢的 thymeleaf 来模板化和注入服务端变量。

干杯,

【问题讨论】:

    标签: spring-mvc spring-boot


    【解决方案1】:

    我会简单地创建另一个 @Controller 类来模拟 @RestController 类。如果服务层设计得当,它将是一个简单的调用来获取数据。主要区别在于视图部分。那将是你工作的地方。使用 Rest 很容易只输出对象,隐式 @ResponseBody 负责序列化。如您所知,使用 Controller 样式,您将传回视图。这是主要的区别。

    从控制器调用由同一应用程序提供服务的 REST 后端是多余的。

    【讨论】:

    • 谢谢!这个策略对我很有效。我将所有逻辑都推送到服务层和实用程序类中,REST 和 MVC 控制器现在都可以调用公共代码。
    猜你喜欢
    • 2017-10-25
    • 2016-10-29
    • 2019-05-31
    • 2018-03-25
    • 2018-07-09
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多