'use client'; import { useEffect, useRef, useState } from 'react'; export default function ApiDocsPage() { const [SwaggerUI, setSwaggerUI] = useState(null); const [spec, setSpec] = useState(null); const swaggerRef = useRef(null); useEffect(() => { // Динамически загружаем SwaggerUI только на клиенте if (typeof window !== 'undefined') { // Используем eval для обхода статического анализа Next.js const loadSwaggerUI = async () => { try { // @ts-ignore const swaggerModule = await eval('import("swagger-ui-react")'); if (swaggerModule && swaggerModule.default) { setSwaggerUI(() => swaggerModule.default); // CSS загрузится автоматически } } catch (err) { console.warn('swagger-ui-react not installed:', err); } }; loadSwaggerUI(); } // Загружаем OpenAPI спецификацию fetch('/api/openapi') .then(res => res.json()) .then(data => { setSpec(data); if (swaggerRef.current) { swaggerRef.current.specActions.updateSpec(data); } }) .catch(err => { console.error('Failed to load OpenAPI spec:', err); }); }, []); return (

API Документация

Интерактивная документация для AI endpoints

{!SwaggerUI ? (

Загрузка Swagger UI...

Если Swagger UI не загружается, установите: npm install swagger-ui-react

{spec && (
              {JSON.stringify(spec, null, 2)}
            
)}
) : (
)}
); }