Set default axios baseURL for call API
Open .env file and edit REACT_APP_API_URL.
## Backend API URL
VITE_APP_API_URL=https://mock-data-api-nextjs.vercel.app/
import { useCallback, useState } from 'react';
// project-imports
import axios from 'utils/axios';
import { UserProfile } from 'types/users';
// ==============================|| AXIOS - USER ||============================== //
function UserList() {
const [users, setUsers] = useState([]);
const getUsers = useCallback(async () => {
try {
const response = await axios.get('/api/users');
setUsers(response.data.users);
} catch (error) {
console.log(error);
}
}, []);
useEffect(() => {
getUsers();
}, [getUsers]);
return (
<div>
{users.map((user: UserProfile[], index: number) => (
<div key={index}>{user.name}</div>
))}
</div>
);
}
Example 2: Without baseUrl
You can set the entire URL in Axios request. Do not use common Axios instances src\utils\axios.js
instead use directly Axios library.
import { useCallback, useState } from 'react';
// third-party
import axios from 'axios';
// project-imports
import { UserProfile } from 'types/users';
// ==============================|| AXIOS - USER ||============================== //
function UserList() {
const [users, setUsers] = useState([]);
const getUsers = useCallback(async () => {
try {
const response = await axios.get('https://www.domain-xyz.com/api/users');
setUsers(response.data.users);
} catch (error) {
console.log(error);
}
}, []);
useEffect(() => {
getUsers();
}, [getUsers]);
return (
<div>
{users.map((user: UserProfile[], index: number) => (
<div key={index}>{user.name}</div>
))}
</div>
);
}