【问题标题】:How ensure front-end and back-end object consistency of different programming language? [closed]如何保证不同编程语言的前后端对象一致性? [关闭]
【发布时间】:2014-08-27 07:39:43
【问题描述】:

我们正在开发一个宁静的系统。在前端,我们使用 angular js,在后端使用弹簧。现在的问题之一是:如何保证双方交换的对象在时间上保持一致。我不是指持久化在 DB 上的数据的实时交换,我指的是编程对象的一致性。

示例:前端发送一个用户对象,其字段为:名字和姓氏,后端获取此对象用户的名字和姓氏。 将来,一个字段可能必须改变其含义:例如 firstname 变为 name。现在前端无法与后端对话。 解决这个问题的最好方法是编写集成测试:从前端到数据库。但是没有更好的方法来只测试这个“交换层”吗?

我的一个想法是将这些对象(用于后端和角度文件的 java 类)放在一个单独的库中,并对字段的相等进行一些控制。但这是最好的方法吗?知道如何使它变得更好吗?

【问题讨论】:

  • 我在使用 angular2 和 PHP 时遇到了同样的问题,你找到解决方案了吗?我不喜欢集成测试解决方案,因为现在我必须创建 3 个类似的类(API + 后端 + 前端)。也许可以创建 JSON 格式的类,然后用 php 和 angular 解析?

标签: spring angularjs frontend backend consistency


【解决方案1】:

对于这种情况,如果您使用 Spring 和 modelAndAttribute,一旦您更改了客户端/服务器和实体属性名称之一,您将收到来自框架的 BindingResult 异常。对此进行测试的唯一方法是使用 selenium 进行集成测试。这将使整个客户端/服务器事务在测试中检查一切是否仍然正常工作,没有任何异常。

阅读如何与 Spring MVC 集成的文档https://spring.io/blog/2014/03/26/spring-mvc-test-with-webdriver

【讨论】:

  • 感谢 Paul,我会尝试使用 Web 驱动程序。如果我没有 Spring 和 angularjs?集成测试是唯一的方法吗?
  • 不,您始终可以使用其他框架(如 JUnit)创建自己的集成测试。顺便说一句,Selenium 不是 Spring 技术,我发布该链接是因为我认为您使用 Spring Selenium 是一种独立技术docs.seleniumhq.org
猜你喜欢
  • 1970-01-01
  • 2017-12-12
  • 2016-01-31
  • 2020-08-23
  • 2018-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多