import axios from 'axios'
export default axios.create({
baseURL: '기본 url주소를 넣어준다', // 이외에 headers 등 미리 기본설정으로 넣을 수 있다.
});
1) GET: 데이터 가져오기
const getApi = () => {
try {
const { data } = await axios.get('/todos',
{
headers: { 'Authorization': `Bearer ${token}` }, // header는 인증 or 권한부여
});
return data;
} catch(error) {
alert(`${error.message}\n요청중에 오류가 발생했습니다. 새로고침 후 다시 시도해주세요.`);
};
};
2) POST: 추가하기 or 수정하기
const postApi = () => {
try {
const { data } = await axios.post('/todos', {
todo: todoInput.current.value
},
{
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
return data;
} catch(error) {
alert(`${error.message}\n요청중에 오류가 발생했습니다. 새로고침 후 다시 시도해주세요.`);
};
};
3) PUT: 추가하기 or 수정하기 (with 식별자)
const putApi = () => {
try {
const { data } = await axios.put(`/todos/${id}`, {
todo: todo,
isCompleted: checked
},
{
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
return data;
} catch(error) {
alert(`${error.message}\n요청중에 오류가 발생했습니다. 해당페이지를 종료하고 새로운 페이지로 다시 시도해주세요.`);
};
};
4) DELETE: 삭제하기
const deleteApi = () => {
try {
await axios.delete(`/todos/${id}`,
{
headers: { 'Authorization': `Bearer ${token}` },
});
} catch(error) {
alert(`${error.message}\n요청중에 오류가 발생했습니다. 새로고침 후 다시 시도해주세요.`);
};
};
5) PATCH: 일부만 수정하기
const patchApi = () => {
try {
await axios.patch(`/todos/${id}`, {
isCompleted: checked
},
{
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
} catch(error) {
alert(`${error.message}\n요청중에 오류가 발생했습니다. 해당페이지를 종료하고 새로운 페이지로 다시 시도해주세요.`);
};
};
1) Parameters (config)
2) Path parameters
3) Query parameters (QueryString)
4) 기본 예시
import axios from 'axios'
export default axios.create({
baseURL: `https://api.github.com/repos/${OWNER}/${REPO}/issues`, // 2번) Path parameters 예시
});
const getIssuesApi = async (page: number) => {
try {
// axios.get(url, config);
const response = await axios.get(`?state=${STATE}&sort=${SORT}&page=${page}`, // 3번) Query parameters (QueryString) 예시
{
headers: { // 1번) Parameters (config) 예시
'Authorization': `Bearer ${token}`,
'Accept': 'application/vnd.github+json'
}
});
} catch(error) {
alert(`${error.message}\n요청중에 오류가 발생했습니다. 새로고침 후 다시 시도해주세요.`);
}
};