// Пример React компонента с использованием API 'use client'; import { useState } from 'react'; import { apiRequest } from '@/lib/api'; interface ApiData { name: string; value: string; } export default function ExampleComponent() { const [data, setData] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const handleFetch = async () => { setLoading(true); setError(null); try { // Используем правильный endpoint с валидацией: /api/example/data const response = await apiRequest('example/data', { method: 'POST', body: JSON.stringify({ name: 'Test', value: 123, // Число, а не строка (валидатор требует numeric) }), }); if (response.success && response.data) { setData({ name: response.data.name, value: String(response.data.value), // Преобразуем для отображения }); } else { // Улучшенная обработка ошибок валидации let errorMessage = response.error || 'Unknown error'; if (response.errors && Array.isArray(response.errors)) { const validationErrors = response.errors .map((err: { msg?: string }) => err.msg || err) .join(', '); errorMessage = `Ошибка валидации: ${validationErrors}`; } setError(errorMessage); } } catch (err) { setError(err instanceof Error ? err.message : 'Failed to fetch data'); } finally { setLoading(false); } }; return (

Пример компонента

{error && (
Ошибка: {error}
)} {data && (

Name: {data.name}

Value: {data.value}

)}
); }