【问题标题】:Set up mock API server for isolating frontend-backend dependencies设置模拟 API 服务器以隔离前端-后端依赖项
【发布时间】:2012-12-23 03:40:04
【问题描述】:

我们的应用程序是基于 API 的应用程序,其中前端依赖于对后端的 REST API 调用。这有时会产生一个问题,即前端团队无法继续前进,除非后端 API 已经实现,因为它们总是以不同的速度前进。有没有办法设置一个服务器,让前端可以独立工作,不管后端状态如何?

【问题讨论】:

  • 有一些模拟框架可以与单元测试一起使用,可以帮助解决这个问题。不过,这取决于您使用的语言。
  • 后端是用 Java 实现的,理想情况下我想用 Java 设置模拟服务器响应。前端是用Node.Js编写的Javascript

标签: api mocking


【解决方案1】:

我知道这是一篇旧文章,但我为此目的创建了一个工具,我认为我应该将它分享给任何偶然发现它的人。

它被称为 Interfake,您可以在 https://github.com/basicallydan/interfake 找到它。我经常将它用于尚未构建的 API 原型设计,事实上这是我的主要用途。我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我们使用的常见解决方案如下:

    已就 FE 和 BE 合同/API 达成一致,并模拟后端 API。 BE REST API 使用我们配置的过滤器。 对于所有准备好的 api,过滤器重定向到正确的 api,对于所有被模拟的 api,过滤器重定向到模拟 api。

    对于 FE 团队如此透明,因为 BE 团队正在构建和完成更多 api,他们只需更新过滤器看起来的地图,并且一旦 BE 团队准备好打开它,就会自动调用后端 api .

    所以流程如下:

    FE ->BE Rest API Server 
          |API Filter->(for apis updated in the map as complete)-->server/port with actual api  
          |------------->(for apis that are still being mocked) --> server/port with mock
    

    希望对您有所帮助。

    【讨论】:

    • 感谢您的回复。如果理解正确,在您的情况下,BE Dev(或 QA)首先在一个单独的项目中编写模拟响应,然后开始实际实施。
    • 不,我们不使用其他项目。它在同一个项目中。如果我们有三个 api,A、B、C。我们有 A、B、C 的模拟。所有模拟也是项目的一部分,可以从不同的端口或不同的 url 提供服务。如果 A 完成,它会设置在过滤器拾取的映射中,因此现在将重定向到托管最新和最佳实现的 url 或端口。
    • API 使用 JAVA 或 Nodejs,FE 是 nodejs。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2012-07-11
    • 2012-07-06
    • 1970-01-01
    相关资源
    最近更新 更多