9

我需要在 API 中测试一个端点,但我已经使用了一个 API,并且我不想更改所有针对新 API 的调用。

proxy我不知道事件是否可能,但有没有办法在里面定义多个package.json

有没有办法在里面传递身份验证密钥package.json

主服务器是本地服务器,带有代理:

"proxy": {
    "/api": {
      "target": "http://localhost:3001/proxy",
      "changeOrigin": true,
      "pathRewrite": {
        "^/api": ""
      }
    }
  },

目前我正在使用axiosAPI 调用,该项目是从react-create-app.

4

2 回答 2

5

在 package.json 中,您可以配置代理服务器以根据对不同 API 请求的模式进行匹配,向不同目标发出 API 请求,如下所示。

注意事项:

  • API 模式的顺序很重要,通用请求(*)必须在最后。
  • 正则表达式应该匹配完整的 url,部分匹配对我来说会导致错误。

以下代码对我有用。有 3 台不同的服务器,一台用于报告请求,一台用于访问控制请求,其余所有请求都应该转到第三台服务器。

"proxy": {
    "/report/.*(_get)": {
      "target": "http://localhost:8093/"
    },
    "/access/.*(_get)": {
      "target": "http://localhost:8091/"
    },
    "/.*": {
      "target": "https://egov-micro-dev.egovernments.org/",
      "changeOrigin": true
    }
  },

希望这可以帮助。

于 2018-12-11T11:43:06.873 回答
1

我找到了在第一个代理之后添加第二个代理的解决方案,在里面proxy我也没有必要把标题放在里面package.json,但是@Chase DeAnda 分享的链接真的很有趣,可以帮助有兴趣的人: Webpack headers and axios拦截器

于 2018-06-07T20:07:42.860 回答