首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mirage.js多通通配符

mirage.js多通通配符
EN

Stack Overflow用户
提问于 2020-09-18 13:06:52
回答 1查看 1.3K关注 0票数 2

背景

我们正在使用miragejs来模拟服务器apis。我们的服务器/后端遵循微服务体系结构,每个微服务都是单独版本的,因此我们的api路径具有

  • {base_version} -服务器/发布版本,随环境而变化(dev / qa / uat / prod)
  • {microservice_version} -对于每个环境中的每个微服务

不同

一个典型的api url看起来像

example.com/{base_version}/microservice/{microservice_version}/api_endpoint?parameter=value

问题

在设置海市蜃楼模仿路线的时候,

使用通配符(*)对passthrough:和{base_version}使用通配符(*)的

  • 失败,并导致一个{microservice_version}

example.com/*/microservice/*/api_endpoint?parameter=value

但是,以下所有工作都是正确的:

用于{microservice_version}

  1. 通配符和用于{base_version}的实际值

example.com/*/microservice/v2/api_endpoint?parameter=value

用于{base_version}

  1. 通配符和用于{microservice_version}的实际值

example.com/v3/microservice/*/api_endpoint?parameter=value

  1. 双通配符(用于转义{microservice_version}{base_version}和中间的任何事物)

example.com/**/api_终结点?参数=值

以上三种工作解决方案中的任何一种要求我们硬编码一个版本,或者忽略微服务名称/路径,这并不理想,因为我们有多个环境/版本、多个微服务版本和不同微服务中的相同api端点(例如过滤器/属性)。

是否有一种干净的方法可以让miragejs使用api url中的多个通配符?

EN

回答 1

Stack Overflow用户

发布于 2020-09-27 04:19:41

由于Miragejs在内部使用Pretender,示例url中的多个通配符应该可以工作。

代码语言:javascript
复制
example.com/*/microservice/*/api_endpoint?parameter=value

您还可以使用:处理动态段而不是*。

至于您所面临的问题,我想,您正在尝试使用request.params来识别基本版本和微服务版本。

当使用未命名的动态段时,request.params将包含一个值(最后一个段匹配)。

这可能是在使用多个通配符时使用通入的原因。

正如@tmdesigned建议的那样,如果需要使用版本参数,您可以使用一个命名的动态段,如:base或*base。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63956371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档