1import axios, { AxiosRequestConfig } from 'axios';
2
3export async function apiGet(endpoint: string, params = {}, additionalHeaders = {}) {
4 try {
5 const response = await axios.get(endpoint, {
6 params,
7 headers: {
8 'Content-Type': 'application/json',
9 ...additionalHeaders,
10 },
11 });
12 return response.data;
13 } catch (error) {
14 console.error('API GET Error:', error);
15 throw error;
16 }
17}
18
19export async function apiPost(endpoint: string, body: any, isFormData = false, additionalHeaders = {}) {
20 try {
21 const headers = {
22 'Content-Type': isFormData ? 'multipart/form-data' : 'application/json',
23 ...additionalHeaders,
24 };
25
26 const response = await axios.post(endpoint, isFormData ? body : JSON.stringify(body), { headers });
27 return response.data;
28 } catch (error) {
29 console.error('API POST Error:', error);
30 throw error;
31 }
32}
33
34export async function apiPut(endpoint: string, body: any, additionalHeaders = {}) {
35 try {
36 const response = await axios.put(endpoint, JSON.stringify(body), {
37 headers: {
38 'Content-Type': 'application/json',
39 ...additionalHeaders,
40 },
41 });
42 return response.data;
43 } catch (error) {
44 console.error('API PUT Error:', error);
45 throw error;
46 }
47}
48
49export async function apiDelete(endpoint: string, body: any, additionalHeaders = {}) {
50 try {
51 const response = await axios.delete(endpoint, {
52 headers: {
53 'Content-Type': 'application/json',
54 ...additionalHeaders,
55 },
56 data: JSON.stringify(body),
57 });
58 return { success: true };
59 } catch (error) {
60 console.error('API DELETE Error:', error);
61 throw error;
62 }
63}
64
65export async function apiPatch(endpoint: string, body: any, isFormData = false, additionalHeaders = {}) {
66 try {
67 const headers = {
68 'Content-Type': isFormData ? 'multipart/form-data' : 'application/json',
69 ...additionalHeaders,
70 };
71
72 const response = await axios.patch(endpoint, isFormData ? body : JSON.stringify(body), { headers });
73 return response.data;
74 } catch (error) {
75 console.error('API PATCH Error:', error);
76 throw error;
77 }
78}
1import axios from 'axios';
2
3export async function apiGet(endpoint, params = {}, additionalHeaders = {}) {
4 try {
5 const response = await axios.get(endpoint, {
6 params,
7 headers: {
8 'Content-Type': 'application/json',
9 ...additionalHeaders,
10 },
11 });
12 return response.data;
13 } catch (error) {
14 console.error('API GET Error:', error);
15 throw error;
16 }
17}
18
19export async function apiPost(endpoint, body, isFormData = false, additionalHeaders = {}) {
20 try {
21 const headers = {
22 'Content-Type': isFormData ? 'multipart/form-data' : 'application/json',
23 ...additionalHeaders,
24 };
25
26 const response = await axios.post(endpoint, isFormData ? body : JSON.stringify(body), { headers });
27 return response.data;
28 } catch (error) {
29 console.error('API POST Error:', error);
30 throw error;
31 }
32}
33
34export async function apiPut(endpoint, body, additionalHeaders = {}) {
35 try {
36 const response = await axios.put(endpoint, JSON.stringify(body), {
37 headers: {
38 'Content-Type': 'application/json',
39 ...additionalHeaders,
40 },
41 });
42 return response.data;
43 } catch (error) {
44 console.error('API PUT Error:', error);
45 throw error;
46 }
47}
48
49export async function apiDelete(endpoint, body, additionalHeaders = {}) {
50 try {
51 const response = await axios.delete(endpoint, {
52 headers: {
53 'Content-Type': 'application/json',
54 ...additionalHeaders,
55 },
56 data: JSON.stringify(body),
57 });
58 return { success: true };
59 } catch (error) {
60 console.error('API DELETE Error:', error);
61 throw error;
62 }
63}
64
65export async function apiPatch(endpoint, body, isFormData = false, additionalHeaders = {}) {
66 try {
67 const headers = {
68 'Content-Type': isFormData ? 'multipart/form-data' : 'application/json',
69 ...additionalHeaders,
70 };
71
72 const response = await axios.patch(endpoint, isFormData ? body : JSON.stringify(body), { headers });
73 return response.data;
74 } catch (error) {
75 console.error('API PATCH Error:', error);
76 throw error;
77 }
78}
1// Example: Fetch data with GET
2try {
3 const data = await apiGet('https://api.example.com/users', { page: 1 });
4 console.log(data);
5} catch (error) {
6 console.error('Error fetching users:', error);
7}
8
9// Example: Create a new user with POST
10try {
11 const newUser = { name: 'John Doe', email: 'johndoe@example.com' };
12 const data = await apiPost('https://api.example.com/users', newUser);
13 console.log(data);
14} catch (error) {
15 console.error('Error creating user:', error);
16}