2025-08-29 10:32:21 +09:00
|
|
|
/**
|
|
|
|
* API 호출을 위한 편의 함수
|
|
|
|
*
|
|
|
|
* @template T - 응답 데이터의 타입
|
|
|
|
* @param path - API 엔드포인트 경로 (예: '/users', '/users/1')
|
|
|
|
* @param opts - 요청 옵션 (method, body, headers 등)
|
|
|
|
* @returns Promise<T> - API 응답 데이터
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* // GET 요청
|
|
|
|
* const users = await useApi<User[]>('/users')
|
|
|
|
*
|
|
|
|
* // POST 요청
|
|
|
|
* const newUser = await useApi<User>('/users', {
|
|
|
|
* method: 'POST',
|
|
|
|
* body: { name: 'John', email: 'john@example.com' }
|
|
|
|
* })
|
|
|
|
*
|
|
|
|
* // PUT 요청
|
|
|
|
* const updatedUser = await useApi<User>('/users/1', {
|
|
|
|
* method: 'PUT',
|
|
|
|
* body: { name: 'John Updated' }
|
|
|
|
* })
|
|
|
|
*
|
|
|
|
* // DELETE 요청
|
|
|
|
* await useApi('/users/1', { method: 'DELETE' })
|
|
|
|
*
|
|
|
|
* // FormData 업로드
|
|
|
|
* const formData = new FormData()
|
|
|
|
* formData.append('file', file)
|
|
|
|
* await useApi('/upload', { method: 'POST', body: formData })
|
|
|
|
*/
|
|
|
|
export const useApi = <T>(path: string, opts?: any): Promise<T> => {
|
|
|
|
const { $api } = useNuxtApp();
|
|
|
|
return ($api as any)(path, opts);
|
2025-08-28 16:00:25 +09:00
|
|
|
};
|