Открытый гайд · ИИ-офис

Claude Codeдля бэкенда и API

Роуты, эндпоинты, бизнес-логика — Claude Code пишет их быстро, но по умолчанию забывает про края: валидацию, ошибки, права. Разберём воркфлоу, где бэкенд получается надёжным, а не «вроде работает».

@kir.player
~13 минут
июнь 2026

Бэкенд — это невидимая часть проекта: то, что обрабатывает запросы, считает, проверяет права и ходит в базу. Пользователь его не видит, но именно здесь живёт логика, и здесь же ошибка стоит дороже всего: неверный расчёт, дыра в правах, потерянные данные. Claude Code пишет бэкенд-код быстро, но у него есть слепое пятно — по умолчанию он делает «счастливый путь» и забывает про крайние случаи. Этот гайд про то, как закрыть слепое пятно и получить надёжный API.

Что узнаешь из гайда

  • Как задать контракт и образец, чтобы эндпоинт лёг в проект
  • Как просить роуты и эндпоинты под свой фреймворк
  • Почему бизнес-логику надёжнее писать через тесты
  • Как не забыть валидацию и обработку ошибок
  • Что в безопасности оставить за собой — честная граница

Часть 1 · Контекст

Задай контракт и образец

Главное

Эндпоинт начинается с контракта: метод, путь, входные данные, формат ответа, коды ошибок. Дай его агенту и покажи соседний роут как образец — тогда новый код повторяет ваши соглашения, а не приносит чужие.

Расшифруем термины. API — это набор точек, через которые программы общаются: клиент шлёт запрос, сервер отвечает. Эндпоинт (endpoint) — конкретная такая точка, например POST /api/orders. Роут (route) — правило, которое связывает путь запроса с кодом-обработчиком. Контракт — это договорённость, как эндпоинт себя ведёт: что принимает, что возвращает, какие ошибки. Без контракта агент угадывает форму ответа, и фронтенд потом не стыкуется.

чат Claude Code · контракт + образец
# Сначала покажи образец и опиши контракт
Посмотри 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»), запускаете — тест красный, кода ещё нет. Потом агент пишет минимальную реализацию, гоняет тест — зелёный. Так у логики есть объективная проверка, а не доверие на слово.

чат Claude Code · логика через тесты
# 1. Сначала проговариваем поведение тестами
Напиши тесты на расчёт скидки:
- сумма < 5000 → скидки нет
- сумма >= 5000 → скидка 10%
- сумма >= 20000 → скидка 20%
- отрицательная сумма → ошибка
Сначала ТОЛЬКО тесты, код не трогай.

# 2. Затем — реализация под зелёные тесты
Теперь напиши функцию расчёта, чтобы все тесты прошли.

Подробный воркфлоу с циклом red-green-refactor — в гайде про тесты с Claude Code. Для бэкенд-логики это не формальность, а способ не выкатить неправильный расчёт в прод.


Часть 4 · Края

Валидация и обработка ошибок

Главное

По умолчанию агент пишет «счастливый путь» и забывает края. Проси явно: проверь вход, не доверяй данным клиента, верни понятную ошибку. Закрепи эти правила в CLAUDE.md — и они применяются сами.

Это главное слепое пятно бэкенда с агентом. Валидация — это проверка входных данных до того, как пустить их в логику: пришёл ли нужный формат, не отрицательное ли число, не пустое ли поле. Обработка ошибок — что вернуть, когда что-то пошло не так: понятный код и сообщение вместо падения с пятисоткой. Claude сделает и то, и другое — но только если попросить.

Удобный приём — разобрать края списком прямо в промте. Тогда агент не пропустит:

  1. Пустой/неверный вход. Нет обязательного поля, не тот тип — вернуть 400 с понятным сообщением.
  2. Нет прав. Не авторизован — 401, нет доступа к ресурсу — 403.
  3. Не найдено. Запрошенного объекта нет — 404, а не падение.
  4. Внешний сбой. База или сторонний сервис недоступны — корректная ошибка, а не зависание.
  5. Не доверять клиенту. Любые данные из запроса — подозрительны, пока не проверены.

Приём

Добавь в CLAUDE.md строку «каждый эндпоинт: валидация входа, единый формат ошибок, не доверять данным клиента». Тогда агент применяет это к каждому роуту без напоминаний, и ты перестаёшь ловить «забыл проверку» на ревью.


Часть 5 · Безопасность

Что оставить за собой

Главное

Авторизацию, права и работу с деньгами пиши с агентом, но ревьюй особенно строго. Секреты — в переменных окружения, не в коде. И не давай агенту ослаблять проверки, лишь бы тест позеленел.

Бэкенд — это слой, где ошибка видна не сразу, а когда уже поздно: утёк токен, кто-то увидел чужие данные, прошёл лишний платёж. Поэтому часть вещей остаётся под контролем человека, даже если агент написал черновик.

Что НЕ отдавать на автомат

Не принимай логику авторизации и проверки прав «на слово» — читай её глазами. Не разрешай агенту ослаблять валидацию, лимиты или проверки доступа ради зелёного теста. Не клади секреты и ключи в код — только в переменные окружения. И не давай лишних прав на сессии, где открыт доступ к проду.

Перед задачами, которые трогают права или контракт, включай план-режим (Shift+Tab): агент распишет, что и зачем собирается менять, ты утверждаешь — и только потом он пишет код. Для чувствительного слоя это дешевле, чем разбирать последствия.

Коротко

  • Начинай с контракта и образца — иначе форма ответа угадывается.
  • Роуты проси по одному под свой стек, проверяй обе стороны контракта.
  • Логику пиши через тесты, а не «вроде работает».
  • Валидацию и ошибки проси явно; авторизацию ревьюй строго, секреты — в env.

Вопросы

Частые вопросы

Может ли Claude Code писать API и эндпоинты?

Да, Claude Code пишет API-роуты и эндпоинты: ты описываешь, что должен делать запрос, а агент создаёт обработчик под твой фреймворк — Express, Next.js, FastAPI и другие. Чтобы код лёг в проект, покажи соседний роут как образец и опиши контракт: метод, путь, входные данные, формат ответа. Тогда новый эндпоинт повторяет ваши соглашения.

Как Claude Code пишет бизнес-логику без багов?

Бизнес-логику Claude Code пишет надёжнее всего по схеме «сначала тест, потом код»: ты вместе с агентом фиксируешь ожидаемое поведение тестом, и только потом он пишет реализацию под зелёный тест. Это убирает «вроде работает»: логика проверяется кодом, а не на слово. Крайние случаи (пустой ввод, ошибка, нет прав) проговаривай явно — их легко забыть.

Помнит ли Claude Code про валидацию и обработку ошибок?

Claude Code добавляет валидацию и обработку ошибок, если попросить об этом явно — по умолчанию он пишет «счастливый путь». Указывай в задаче: проверь входные данные, верни понятную ошибку, не доверяй данным от клиента. Лучше один раз закрепить эти правила в CLAUDE.md, чтобы агент применял их к каждому эндпоинту без напоминаний.

Можно ли доверять Claude Code авторизацию и безопасность API?

Авторизацию и безопасность API стоит писать с Claude Code, но проверять особенно строго — это слой, где ошибка дорого стоит. Агент помогает с проверкой прав, лимитами и валидацией, но финальное ревью логики доступа делает человек. Не давай агенту ослаблять проверки ради того, чтобы тест прошёл, и держи секреты в переменных окружения, а не в коде.

Читать дальше

Соседние гайды

Telegram про вайбкодинг и ИИ

Прикладной материал, разборы и рабочие приёмы — то, чем пользуюсь сам, без воды. Залетай, там самое полезное.

Зайти в Telegram