Skip to content
This repository was archived by the owner on Jan 24, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/config/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// export const DEV_HOST = 'http://0.0.0.0:8000'
export const DEV_HOST = ''
20 changes: 15 additions & 5 deletions src/utils/api.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
import axios from 'axios'

import { store } from '../redux/store'
import { DEV_HOST } from '../config/config'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

不要另建一个只有一条配置的config文件了
PS 并且config/config.js很奇怪,config/index.js或者config/base.js都好很多


const host = process.env.NODE_ENV !== 'production' ? DEV_HOST : ''
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

先判断DEV_HOST非空,然后读DEV_HOST这个环境变量会比较好点。
任何改动会很频繁的配置选项都可以写成先从变量读,然后从环境变量读,然后fallback到默认


export const apiRequest = request => axios({
...request,
url: `${host}/api${request.url}`,
});

export const v1Request = request => axios({
...request,
url: `${host}/api/v1${request.url}`
});

export const apiRequest = request => axios({...request, url: `/api${request.url}`});
export const v1Request = request => axios({...request, url: `/api/v1${request.url}`});
export const v1AuthRequest = request => axios({
...request,
url: `/api/v1${request.url}`,
url: `${host}/api/v1${request.url}`,
headers: {...request.headers, Authorization: `Bearer ${store.getState().auth.token}`}
});

export const v2AuthRequest = request => axios({
...request,
url: `/api/v2${request.url}`,
url: `${host}/api/v2${request.url}`,
headers: {...request.headers, Authorization: `Bearer ${store.getState().auth.token}`}
});