/
d.vader
/
e2e
Обзор
Документация
Войти
/
d.vader
/
e2e
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/services/api.ts
95 строк
2 KB
Boris Meshcheryakov
initial commit
01 окт 2025, 09:22
01 окт 2025, 09:22
3edac10
Код
Авторство
О чём код?
const API_BASE_URL = 'http://localhost:5005/api'; export interface Post { id: number; userId: number; title: string; body: string; url: string; rate: number; } export interface PostsResponse { data: Post[]; next?: { page: number; limit: number }; previous?: { page: number; limit: number }; } export interface Comment { id: number; postId: number; title: string; rate: number; body: string; } /** * Получить список постов с пагинацией */ export const fetchPosts = async (page: number = 1, limit: number = 10): Promise<PostsResponse> => { const response = await fetch(`${API_BASE_URL}/posts?page=${page}&limit=${limit}`); if (!response.ok) { throw new Error(`Ошибка загрузки постов: ${response.status}`); } return response.json(); }; /** * Получить пост по ID */ export const fetchPost = async (id: number): Promise<Post> => { const response = await fetch(`${API_BASE_URL}/posts/${id}`); if (!response.ok) { throw new Error(`Ошибка загрузки поста: ${response.status}`); } return response.json(); }; /** * Поиск постов */ export const searchPosts = async (term: string, page: number = 1, limit: number = 10): Promise<PostsResponse> => { const response = await fetch(`${API_BASE_URL}/posts-search?term=${encodeURIComponent(term)}&page=${page}&limit=${limit}`); if (!response.ok) { throw new Error(`Ошибка поиска: ${response.status}`); } return response.json(); }; /** * Получить комментарии к посту */ export const fetchComments = async (postId: number): Promise<Comment[]> => { const response = await fetch(`${API_BASE_URL}/posts/${postId}/comments`); if (!response.ok) { throw new Error(`Ошибка загрузки комментариев: ${response.status}`); } return response.json(); }; /** * Создать комментарий */ export const createComment = async (postId: number, comment: Omit<Comment, 'id' | 'postId'>): Promise<Comment> => { const response = await fetch(`${API_BASE_URL}/posts/${postId}/comments`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(comment), }); if (!response.ok) { throw new Error(`Ошибка создания комментария: ${response.status}`); } return response.json(); };