Backend - Создание или изменение REST API endpoint в backend-проектах стека. Использовать, когда нужно добавить новую ручку, изменить маршрут/HTTP-метод/статус-коды, подключить endpoint в роутер, настроить DI-зависимости и оформить OpenAPI-контракт для success/error ответов.
Добавлять и дорабатывать endpoint по REST-конвенциям и локальному паттерну проекта.
app/<domain>/views.py, schemas.py, accessor.py, models.py, urls.py, domain.py.app/users/ (контроллер UserController, schemas UserEmailRequest, accessor UserAccessor).2.1 Зафиксировать проектные паттерны.
Controller — transport layer.store.<domain> (Accessor). Бизнес-оркестрацию выносить в manager только при необходимости.store: Store получать через DI (регистрируется автоматически через ), не инстанциировать вручную.InitPluginmsgspec.Struct с kw_only=True в schemas.py.OkResponse из app.core.schemas.litestar.Controller, декоратор @get/@post/@patch/@delete с явным path=... и status_code=....exclude_from_auth=True.__post_init__ DTO, используя app.core.validators.3.1 Зафиксировать версию API.
v1 по умолчанию, префикс /api/...).v1 → v2+ делать только по явному решению.GET /resource/ и POST /resource/.GET /resource/{id}/, PUT/PATCH /resource/{id}/, DELETE /resource/{id}/.200, 201, 204, 400, 401, 403, 404, 409.litestar.exceptions: NotFoundException, PermissionDeniedException, ValidationException, HTTPException.<domain>/urls.py в функцию get_handlers().get_handlers() в route_handlers в main.py.Store в app/core/store.py.uv run ruff check . + uv run mypy ..401 + validation/business error.urls.py → main.py, ruff/mypy проходят.