当前位置: 首页 > 知识库问答 >
问题:

保持Spring靴和角度应用程序之间的模型同步。选择?

皇甫福
2023-03-14

在具有spring boot和angular的客户端服务器应用程序中。我找到的大多数资源都解释了如何从spring boot公开RESTendpoint,并使用http客户端从angular使用它。

大多数时候,JSON中的通信都是预先设定的,在angular和Spring Boot端维护DTO(DataTransferToObject)。

我想知道有全栈经验的人是否知道一些替代方案,避免在前端和后端维护DTO,也许在应用程序的两端共享模型?

共有3个答案

容修贤
2023-03-14

正如Pace所说,Swagger将是您可以使用的一个很好的功能。在这种情况下,再加上为APIendpoint留档很好,您可以在前端和后端之间同步对象模型。您只需使用Swagger的. json. yaml文件即可使用ng-swagger-gen在前端生成服务和对象模型。然后将生成服务和对象模型的命令放在package.json中,例如:

...
    "scripts": {
    ...
    "start": "ng-swagger-gen && ng serve",
    "build": "ng-swagger-gen && ng build -prod"
     ...
  },
...

因此,在运行其中一个命令后,您将更新对象模型,如果对象属性名称或类型发生更改,添加/删除对象属性将出现错误,您必须先修复该错误,然后再继续。

注意:请记住,服务和对象模型将基于Swagger文件生成,因此应该始终进行更新。

PS:我正在做一个项目,我们甚至后端的每个代码都是基于Swagger文件生成的;)所以他们只是更改了Swagger文件,仅此而已。

邹嘉荣
2023-03-14

这是一个困难的话题,因为我们正在处理两个不同的技术堆栈。我看到的唯一方法是从公共数据模型生成这些对象。

公羊宗清
2023-03-14

在这里,大摇大摆将是一个很好的工具。

您可以采取代码优先的方法,这将从您的Java控制器生成一个昂首阔步的规范

无论哪种方式,都可以使用swagger规范为客户端生成一组TypeScript接口。

 类似资料:
  • 我有一个在8888端口上运行的Spring Boot后端应用程序和一个在4200端口上运行的Angular前端应用程序。 在我的Spring Boot应用程序中,我定义了以下bean来处理CORS: 我的配置如下所示: 通过这种配置,一切正常,我可以从Angular应用程序成功调用我的API。 但我想启用CSRF,所以我将安全配置更改为: 我在Angular应用程序中添加了以下: 问题是始终返回。

  • 我采取的步骤: 获取Windows路径>回显%路径% 选择相关路径并转换为bash兼容(例如:\java变为/mnt/c/java) 启动bash&编辑.bashrc 追加到.bashrc中,例如>export PATH=${PATH}://bin://mnt/c/java/bin://mnt/c/node

  • 问题内容: 有没有一种简单的方法可以将角度(以度为单位)转换为-179至180?我确定我可以使用mod(%)和一些if语句,但是它变得难看: 似乎应该有一个简单的数学运算可以同时执行两个语句。我可能现在只需要为转换创建一个静态方法。 问题答案: 我知道聚会晚了一点,但是… 这些答案大多数都不是好事,因为它们试图变得聪明而简洁,然后又不顾及边缘情况。 它有点冗长,但是如果您想使其工作,则只需输入使其

  • 我已经在Wildfly 8.2上的JEE6 Web应用程序中实现了Spring SAML SSO,以便使用ADFS2 / 3进行autenticing,但目前我无法成功进入授权过程。这是请求/响应乒乓球/乒乓球: 回应: 当我在过去两分钟内达到 6 个以上的请求时,ADFS 会断开连接,并且我会收到一个错误。可能的错误是什么?我已将所有必需的密钥添加到我的密钥库中,为什么即使状态代码响应的字段已成

  • 问题内容: 我有一个正在运行的Flask应用程序,该应用程序是根据我们在网上和Miguel Grinberg的“ Flask Web开发”书中找到的最佳实践组合设置的。 现在,我们需要第二个Python应用程序,它不是Web应用程序,并且需要访问与Flask应用程序相同的模型。我们想重复使用相同的课程模型,因此两个应用程序都可以从共享代码中受益。 我们删除了关于flask- sqlalchemy扩

  • 我有一个Django 1.10内置的网站。该网站有3种不同的应用程序:团队、成员和新闻。 第一个叫做团队的应用程序有一个叫做团队的模型。 这是Team/models.py: 第二个应用称为成员,它有一个名为成员的模型。 这是Member/models.py: 我想要的是在成员档案中包含团队的名称,所以我知道它应该是这样的: 但是我不知道在括号里放什么,也不知道如何将团队的模型导入到成员的模型中。我