设置模拟API服务器以隔离前端后端依赖项

设置模拟API服务器以隔离前端后端依赖项,api,mocking,Api,Mocking,我们的应用程序是一个基于API的应用程序,其中前端依赖于对后端的RESTAPI调用。这有时会造成一个问题,前端团队无法前进,除非后端API已经实现,因为它们总是以不同的速度前进。有没有一种方法可以设置一台服务器,使前端ent可以独立工作,而不管后端状态如何?我们使用的常见解决方案如下: FE ->BE Rest API Server |API Filter->(for apis updated in the map as complete)-->server/po

我们的应用程序是一个基于API的应用程序,其中前端依赖于对后端的RESTAPI调用。这有时会造成一个问题,前端团队无法前进,除非后端API已经实现,因为它们总是以不同的速度前进。有没有一种方法可以设置一台服务器,使前端ent可以独立工作,而不管后端状态如何?

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

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
FE和BE合同/API已达成一致,后端API已模拟。 BERESTAPI使用我们配置的过滤器。 对于所有准备就绪的api,过滤器重定向到正确的api,对于所有模拟的api,过滤器重定向到模拟api

当BE团队构建和完成更多API时,FE团队非常透明,他们只需更新过滤器外观的映射,并在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

希望有帮助

我知道这是一篇有点老掉牙的文章,但我为此创建了一个工具,我想我应该把它分享给任何偶然发现它的人


它叫Interfake,你可以在。我经常将其用于尚未构建的原型API,事实上这是我的主要用途。我希望这会有所帮助。

有一些模拟框架可以与单元测试一起使用,可以帮助实现这一点。不过,这取决于您使用的语言。后端是用Java实现的,理想情况下,我希望用Java设置模拟服务器响应。前端是用Node.js编写的Javascript。感谢您的回复。如果我理解正确,在您的情况下,BE开发人员(或QA)首先在一个单独的项目中编写模拟响应,然后开始实际实现。不,我们不使用不同的项目。它在同一个项目中。如果我们有三个API,A、B、C。我们有A、B、C的模拟。所有模拟也是项目的一部分,可以从不同的端口或不同的url提供服务。如果A完成,它是在一个映射中设置的,由过滤器拾取,因此现在将重定向到承载最新和最佳实现的url或端口。我们使用JAVA或Nodejs作为API,FE是Nodejs。