vue项目怎么让一部分接口走本地的mock出来的接口,一部分配合后端swagger测试(需要配置跨域)

发布于 2022-09-12 23:26:04 字数 2344 浏览 16 评论 0

后台模板,用的是大佬的模板https://github.com/PanJiaChen...
模板中的数据都是mock出来的,现在一部分接口替换掉成后端的接口,同时这些接口没在后端配置跨域,需要前端配置。该如何配置

image.pngimage.png
配置了proxy之后,想让/api/factory走proxy的域名,但还是走了mock的

===============================================

我现在用的这套模板,它是走的mock的接口,比如登录,现在我需要保留比如登录,再之后某个页面用自己的接口。这是他的request.js

const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  timeout: 5000 // request timeout
})
.env.develpment:
# base api
VUE_APP_BASE_API = '/dev-api'
//我现在想新建一个比如
VUE_APP_BASE_API_WEB = '/api'

然后在request.js中,如何切换不同的baseurl,百度到一个写法但是似乎不起作用:

service.interceptors.request.use(
  config => {
    // do something before request is sent
    if(config.requestBase==='VUE_APP_BASE_API') {

      if (store.getters.token) {
        // let each request carry token
        // ['X-Token'] is a custom headers key
        // please modify it according to the actual situation
        config.headers['X-Token'] = getToken()
      }
    }else if (config.requestBase==='VUE_APP_BASE_API_WEB'){
      config.baseUrl = process.env.VUE_APP_BASE_API_WEB
      if (store.getters.token) {
        // let each request carry token
        // ['X-Token'] is a custom headers key
        // please modify it according to the actual situation
        config.headers['X-Token'] = getToken()
      }
    }
      return config

  },

这里的config.requestBase 似乎没这个参数?
这是接口的部分:


export function getFactoryList(params) {
  return request({
    url: '/api/factory/page',
    method: 'post',
    requestBase:'VUE_APP_BASE_API_WEB',
    params
  })
}

这是proxy

  devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    proxy:{
      "/api":{
        target:"http://10.10.98.208:7018",
        changeOrigin:true,
        logLevel: 'debug'
      },
    },
    before: require('./mock/mock-server.js')
  },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我乃一代侩神 2022-09-19 23:26:04

更新图片:

image.png


原答案:

  1. 把不需要mock的,从mock配置中删除即可,改成走自己的接口配置。
  2. 关于跨域,本地开发环境的话,前端在开发环境可以通过配置vue.config.js配置跨域解决。非本地开发环境的话,尽量与后端同学沟通一下,处理一下core解决跨域问题。附上vue.config.js
    image.png

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

相权↑美人 2022-09-19 23:26:04

mock匹配到相应的url会使用mock数据,只要你使用的后端的url跟mock url不一样就行

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文