背景
我们正在使用 miragejs 来模拟服务器 API。我们的服务器/后端,遵循微服务架构,每个微服务都是单独版本的,因此我们的 api 路径有
{base_version}- 服务器/发布版本,根据环境更改(dev / qa / uat / prod){microservice_version}- 每个环境中的每个微服务都不同
一个典型的 api url 看起来像
example.com/
{base_version}/microservice/{microservice_version}/api_endpoint?parameter=value
问题
在为 miragejs 模拟设置路线时,
- 对 和 都使用通配符 (*)
{microservice_version}并{base_version}失败,并导致直通:
example.com/*/microservice/*/api_endpoint?parameter=value
但是,以下所有操作都可以正常工作:
- 通配符
{base_version}和实际值{microservice_version}
example.com/*/microservice/v2/api_endpoint?parameter=value
- 通配符
{microservice_version}和实际值{base_version}
example.com/v3/microservice/*/api_endpoint?parameter=value
- 双通配符(转义
{microservice_version},{base_version}和介于两者之间的任何内容)
example.com/**/api_endpoint?parameter=value
上述 3 个可行的解决方案中的任何一个都需要我们硬编码一个版本,或者忽略微服务名称/路径,这并不理想,因为我们有多个环境/版本、多个微服务版本以及不同微服务中的相同 api 端点(例如过滤器/ 属性)。
有没有一种干净的方法可以让 miragejs 在 api url 中使用多个通配符?