ai
3 мин
20 октября 2026 г.
Источник: Dev.to AI Feed

Я сделал Vovk.ts: обработчики маршрутов Next.js, которые также являются инструментами MCP, типизированным клиентом и OpenAPI.

Andrey Gubanov
Andrey Gubanov
RSS AI Ingest
Я сделал Vovk.ts: обработчики маршрутов Next.js, которые также являются инструментами MCP, типизированным клиентом и OpenAPI.

Я работаю над Vovk.ts уже несколько лет. Это внутренний уровень поверх обработчиков маршрутов App Router: вы пишете контроллер с процедурами, и каждая процедура представляет собой обычный обработчик маршрута, метод сгенерированного клиента выборки (TypeScript,...

Я работаю над Vovk.ts уже несколько лет. Это внутренний уровень поверх обработчиков маршрутов App Router: вы пишете контроллер с процедурами, и каждая процедура представляет собой обычный обработчик маршрута, метод сгенерированного клиента выборки (TypeScript, Python, Rust), операцию в спецификации OpenAPI и инструмент искусственного интеллекта. Инструментальная часть — это то, над чем я работал в последнее время. Две процедуры: импорт {получить, операция, сообщение, префикс, процедура} из 'vovk'; импортировать {z} из 'zod'; const TaskSchema = z.object({ id: z.string(), title: z.string(), Done: z.boolean() }); константные задачи: z.infer[] = []; @prefix('задачи') экспортировать класс по умолчанию TaskController { @operation({ summary: «Список задач», описание: «Возвращает каждую задачу». }) @get() статический listTasks = процедура({вывод: TaskSchema.array() }).handle(() => задачи); @operation({ summary: «Создать задачу», описание: «Создает задачу с заданным названием». }) @пост() статический createTask = процедура({ body: z.object({ title: z.string().min(1).describe('Что нужно сделать') }), вывод: TaskSchema, }).handle(async (req) => { const Task = { id: crypto.randomUUID(), title: (await req.vovk.body()).title, Done: false }; задачи.push(задача); возвратное задание;

Хотите внедрить ИИ в ваш бренд?

Спроектируем и развернем автономных агентов и современный цифровой стек под ваши задачи.

Рассчитать проект