Роуты, эндпоинты, бизнес-логика — Claude Code пишет их быстро, но по умолчанию забывает про края: валидацию, ошибки, права. Разберём воркфлоу, где бэкенд получается надёжным, а не «вроде работает».
Бэкенд — это невидимая часть проекта: то, что обрабатывает запросы, считает, проверяет права и ходит в базу. Пользователь его не видит, но именно здесь живёт логика, и здесь же ошибка стоит дороже всего: неверный расчёт, дыра в правах, потерянные данные. Claude Code пишет бэкенд-код быстро, но у него есть слепое пятно — по умолчанию он делает «счастливый путь» и забывает про крайние случаи. Этот гайд про то, как закрыть слепое пятно и получить надёжный API.
Что узнаешь из гайда
Часть 1 · Контекст
Главное
Эндпоинт начинается с контракта: метод, путь, входные данные, формат ответа, коды ошибок. Дай его агенту и покажи соседний роут как образец — тогда новый код повторяет ваши соглашения, а не приносит чужие.
Расшифруем термины. API — это набор точек, через которые программы общаются: клиент шлёт запрос, сервер отвечает. Эндпоинт (endpoint) — конкретная такая точка, например POST /api/orders. Роут (route) — правило, которое связывает путь запроса с кодом-обработчиком. Контракт — это договорённость, как эндпоинт себя ведёт: что принимает, что возвращает, какие ошибки. Без контракта агент угадывает форму ответа, и фронтенд потом не стыкуется.
# Сначала покажи образец и опиши контракт
Посмотри app/api/users/route.ts — это наш стиль роутов
(Next.js, валидация через zod, ошибки в едином формате).
Сделай эндпоинт POST /api/orders:
- вход: { items: [{ productId, qty }] }
- ответ 201: { orderId, total }
- ошибки: 400 если items пуст, 401 без авторизации
Стиль и формат ошибок — как в users/route.ts.Постоянные правила бэкенда — стек, формат ошибок, где лежат сервисы — держи в CLAUDE.md. Тогда не придётся повторять контекст в каждом промте: агент сам применяет ваши соглашения к любому новому роуту.
Часть 2 · Роуты
Главное
Claude пишет роуты под любой фреймворк — Express, Next.js, FastAPI и другие, — если назвать стек и дать образец. Просишь один эндпоинт за раз с чётким контрактом, а не «весь API сразу».
Сила агента здесь — в шаблонности. Большинство роутов устроены одинаково: принять запрос, проверить вход, проверить права, сделать дело, вернуть ответ. Claude знает эти шаблоны для всех популярных фреймворков. Твоя задача — назвать фреймворк и дать соседний роут как образец стиля, чтобы новый эндпоинт был неотличим от написанного руками.
Назови стек, дай образец и контракт — роут получится «как ваш», а не как из туториала.
Дроби работу. «Сделай весь REST API для заказов» — плохой промт: агент выдаст гору кода, в которой трудно навести ревью. «Сделай эндпоинт создания заказа по контракту выше» — хороший: один роут, понятный диф, легко проверить. Как ставить такие задачи — в гайде про промптинг.
Важно
Перед тем как менять контракт существующего эндпоинта, проверь обе стороны: и сервер, который его отдаёт, и фронтенд, который его вызывает. Изменишь форму ответа на бэкенде — сломаешь клиент. Скажи агенту проверить producer и consumer контракта вместе.
Часть 3 · Логика
Главное
Логику пиши по схеме «сначала тест, потом код»: фиксируешь ожидаемое поведение тестом, агент пишет реализацию под зелёный. Так логика проверяется кодом, а не словами «вроде работает».
Бизнес-логика — это правила, по которым проект считает и решает: как начислить скидку, можно ли отменить заказ, кому что показывать. Это самая ценная и самая хрупкая часть бэкенда: баг здесь — это неверные деньги или сломанный сценарий. Поэтому её надёжнее всего писать через тесты.
TDD (Test-Driven Development) — это «сначала тест». Вы с агентом записываете ожидаемое поведение в виде проверки («скидка 10% при сумме от 5000»), запускаете — тест красный, кода ещё нет. Потом агент пишет минимальную реализацию, гоняет тест — зелёный. Так у логики есть объективная проверка, а не доверие на слово.
# 1. Сначала проговариваем поведение тестами
Напиши тесты на расчёт скидки:
- сумма < 5000 → скидки нет
- сумма >= 5000 → скидка 10%
- сумма >= 20000 → скидка 20%
- отрицательная сумма → ошибка
Сначала ТОЛЬКО тесты, код не трогай.
# 2. Затем — реализация под зелёные тесты
Теперь напиши функцию расчёта, чтобы все тесты прошли.Подробный воркфлоу с циклом red-green-refactor — в гайде про тесты с Claude Code. Для бэкенд-логики это не формальность, а способ не выкатить неправильный расчёт в прод.
Часть 4 · Края
Главное
По умолчанию агент пишет «счастливый путь» и забывает края. Проси явно: проверь вход, не доверяй данным клиента, верни понятную ошибку. Закрепи эти правила в CLAUDE.md — и они применяются сами.
Это главное слепое пятно бэкенда с агентом. Валидация — это проверка входных данных до того, как пустить их в логику: пришёл ли нужный формат, не отрицательное ли число, не пустое ли поле. Обработка ошибок — что вернуть, когда что-то пошло не так: понятный код и сообщение вместо падения с пятисоткой. Claude сделает и то, и другое — но только если попросить.
Удобный приём — разобрать края списком прямо в промте. Тогда агент не пропустит:
Приём
Добавь в CLAUDE.md строку «каждый эндпоинт: валидация входа, единый формат ошибок, не доверять данным клиента». Тогда агент применяет это к каждому роуту без напоминаний, и ты перестаёшь ловить «забыл проверку» на ревью.
Часть 5 · Безопасность
Главное
Авторизацию, права и работу с деньгами пиши с агентом, но ревьюй особенно строго. Секреты — в переменных окружения, не в коде. И не давай агенту ослаблять проверки, лишь бы тест позеленел.
Бэкенд — это слой, где ошибка видна не сразу, а когда уже поздно: утёк токен, кто-то увидел чужие данные, прошёл лишний платёж. Поэтому часть вещей остаётся под контролем человека, даже если агент написал черновик.
Что НЕ отдавать на автомат
Не принимай логику авторизации и проверки прав «на слово» — читай её глазами. Не разрешай агенту ослаблять валидацию, лимиты или проверки доступа ради зелёного теста. Не клади секреты и ключи в код — только в переменные окружения. И не давай лишних прав на сессии, где открыт доступ к проду.
Перед задачами, которые трогают права или контракт, включай план-режим (Shift+Tab): агент распишет, что и зачем собирается менять, ты утверждаешь — и только потом он пишет код. Для чувствительного слоя это дешевле, чем разбирать последствия.
Коротко
Вопросы
Да, Claude Code пишет API-роуты и эндпоинты: ты описываешь, что должен делать запрос, а агент создаёт обработчик под твой фреймворк — Express, Next.js, FastAPI и другие. Чтобы код лёг в проект, покажи соседний роут как образец и опиши контракт: метод, путь, входные данные, формат ответа. Тогда новый эндпоинт повторяет ваши соглашения.
Бизнес-логику Claude Code пишет надёжнее всего по схеме «сначала тест, потом код»: ты вместе с агентом фиксируешь ожидаемое поведение тестом, и только потом он пишет реализацию под зелёный тест. Это убирает «вроде работает»: логика проверяется кодом, а не на слово. Крайние случаи (пустой ввод, ошибка, нет прав) проговаривай явно — их легко забыть.
Claude Code добавляет валидацию и обработку ошибок, если попросить об этом явно — по умолчанию он пишет «счастливый путь». Указывай в задаче: проверь входные данные, верни понятную ошибку, не доверяй данным от клиента. Лучше один раз закрепить эти правила в CLAUDE.md, чтобы агент применял их к каждому эндпоинту без напоминаний.
Авторизацию и безопасность API стоит писать с Claude Code, но проверять особенно строго — это слой, где ошибка дорого стоит. Агент помогает с проверкой прав, лимитами и валидацией, но финальное ревью логики доступа делает человек. Не давай агенту ослаблять проверки ради того, чтобы тест прошёл, и держи секреты в переменных окружения, а не в коде.
Читать дальше
Прикладной материал, разборы и рабочие приёмы — то, чем пользуюсь сам, без воды. Залетай, там самое полезное.
Зайти в Telegram