针对一个接口,是否能支持如果配置有mock则使用mock数据,如果没配置mock则通过proxy配置调用开发服务器数据(已配置proxy)?
[ant-design/ant-design-pro]dev下接口mock和服务器proxy配置共存
回答
默认就是这样的吧
"start": "cross-env ESLINT=none roadhog dev",
并不是,如果.webpackrc.js配置了proxy,则mock配置会被忽略,始终走代理调用
不使用 webpack
的 proxy
,而是在 .roadhogrc.mock.js
文件的最后添加转发规则即可
'POST /api/(.*)': 'http://localhost:7001/api',
@F-loat
'/api/(.*)': 'http://localhost:7001/api',
试了一下可以,但无法省略POST来同时支持POST, 需要单独配置一条
'/api/(.*)': 'http://localhost:7001/api',
'POST /api/(.*)': 'http://localhost:7001/api',
@chenshuai2144 在proxy设置里面有没有办法增加一个额外的参数,例如accessToken来做server to server的验证,例如请求 http://localhost:8000/api/users 将会反向代理到 http://api.com/api/users?accessToken=xxxxx. 在用户的角度,不会看到accessToken
@jackxiaodev 通过 header 来传递 token 更好一点吧
@F-loat proxy设置可以加header?麻烦告知如何备置,在.webpackrc.js的proxy设置如下 proxy:{ "/api":{ target: 'http://api.com/api', changeOrigin:true, pathRewrite:{"^/api/":""}, } }
直接在请求的时候加head不行吗,
@yoyo837 这个方法是正确的,需要根据post和get单独设置
@mushroomlb OK, 如果没有更推荐的做法,那分别按方法设置代理就是最佳实践了。
不写方法名理论上是对所有方法都生效? roadhog#mock