angular - 带有特定查询参数的后端匹配 API 路径的 Angular 代理
问题描述
我正在尝试使用特定查询参数代理对 API 的后端调用。说,API 路径是/path/to/api?param1=foo¶m2=bar
,我只需要代理请求param2=bar
。在没有或使用任何查询参数的情况下代理调用/path/to/api
很容易,而不是我的情况。
我开始从官方文档中挖掘,但它只包含基本示例。然后我找到了这篇文章,据说我可以使用自定义匹配器功能,但根据这个评论它在 Angular 中不受支持。然后我访问了webpack 文档,发现自定义匹配器可能会传递给代理配置上下文属性。不过,我不知道如何在 Angular 代理配置中使用它,因为它有另一个模式。这篇文章似乎有最接近的提示来构建我需要的路径,我尝试了不同的选项,尽管它们都没有真正奏效。我发现路径使用微匹配或glob格式,但这些知识对我也没有帮助。我还找到了类似问题的答案,并使用了建议的正则表达式,使其适应我的情况,但再次没有运气。
// ...
"**/path/to/api?*param2=bar*": {
"target": "https://localhost:4200",
"secure": false,
"pathRewrite": () => "/mocks/api.mock.json"
},
// ...
这是我尝试过的众多方法之一,它不代理所需的请求。
解决方案
尝试使用pathRewrite
回调来检索有关 url 路径的信息。
例子:
"**/v1/myApi": {
"pathRewrite": (path) => {
if (path.includes('param=bar')) {
return "/mocks/response1.mock.json";
}
return "/mocks/response2.mock.json";
}
}
推荐阅读
- typo3 - 从内联记录中获取媒体或图像
- python - django-获取具有重叠日期范围的所有模型实例
- swift - WatchKit 接口 - contentSafeAreaInsets 和 systemMinimumLayoutMargins 为零
- python - Django - django-cookie-consent 不起作用
- java - 对于 StorageOptions 类型,方法 getService() 未定义
- jquery - 缩放属性 CSS
- java - Firefox 无头在无头 redhat linux 机器上崩溃
- paypal - 将 PayPal 智能支付 API 与旧的 Express Checkout API 集成
- r - 如何在列表上应用函数并返回向量?R
- javascript - 根据增量道具值更改列表元素的类名 - ReactJS