python-fastapi-scalable-api-cursorrules-prompt-fil — правило Cursor
Правило задаёт стиль и структуру для проектов на FastAPI и React. Оно пригодится, если Cursor должен учитывать соглашения по коду, тестам и развёртыванию.
.cursor/rules/python-fastapi-scalable-api-cursorrules-prompt-fil.mdcЧто делает python-fastapi-scalable-api-cursorrules-prompt-fil
Правило задаёт рекомендации для Python-бэкенда на FastAPI и интерфейса на TypeScript и React. Для бэкенда оно советует аннотации типов, модели Pydantic для проверки входных данных и разделение маршрутов, утилит и схем. Для фронтенда — функциональные компоненты, Tailwind CSS и Shadcn UI; в качестве сборщика указан Vite.
В рекомендациях также есть PostgreSQL, REST API, внедрение зависимостей FastAPI и SQLAlchemy 2.0, если ORM уместна. Правило предлагает писать модульные тесты для обеих частей проекта и использовать docker compose, а не устаревшую команду docker-compose. Это набор проектных соглашений, а не готовая реализация API.
Файл охватывает все пути благодаря globs: **/*, но alwaysApply: false: правило не настроено на безусловное применение. Оно также описывает конкретную структуру проекта с каталогами frontend/src/ и backend/src/, поэтому её стоит сверить с устройством репозитория.
Какие задачи решает
- задать соглашения для FastAPI-маршрутов и моделей
- структурировать Python-бэкенд и React-фронтенд
- согласовать обработку ошибок и проверку входных данных
- подготовить рекомендации по тестам и Docker-развёртыванию
Примеры запросов агенту
- Создай маршрут FastAPI с проверкой входных данных через Pydantic и обработкой ошибок по правилам проекта.
- Добавь функциональный компонент React на TypeScript, используя Tailwind CSS и Shadcn UI.
- Подготовь модульные тесты для бэкенда и фронтенда и настрой запуск через
docker compose.
Как установить python-fastapi-scalable-api-cursorrules-prompt-fil
Вручную: положить файлы
.cursor/rules/python-fastapi-scalable-api-cursorrules-prompt-fil.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/python-fastapi-scalable-api-cursorrules-prompt-fil.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/python-fastapi-scalable-api-cursorrules-prompt-fil.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/python-fastapi-scalable-api-cursorrules-prompt-fil.mdВручную: положить файлы
.clinerules/python-fastapi-scalable-api-cursorrules-prompt-fil.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о python-fastapi-scalable-api-cursorrules-prompt-fil
Как установить python-fastapi-scalable-api-cursorrules-prompt-fil в Cursor?
Добавьте файл правила в .cursor/rules/python-fastapi-scalable-api-cursorrules-prompt-fil.mdc.
Что делает python-fastapi-scalable-api-cursorrules-prompt-fil?
Задаёт рекомендации по разработке FastAPI-бэкенда и React-фронтенда: структуре, стилю кода, тестированию и Docker.
Правило применяется ко всем файлам автоматически?
Оно охватывает пути **/*, но alwaysApply: false, поэтому не настроено на безусловное применение.
Исходный текст
python-fastapi-scalable-api-cursorrules-prompt-fil.mdc · CC0-1.0
---
description: "Cursor rules for Python FastAPI development with scalable API integration."
globs: **/*
alwaysApply: false
---
You are an expert in **Python, FastAPI, scalable API development, TypeScript, React, Tailwind,** and **Shadcn UI**.
### Key Principles
- Write concise, technical responses with accurate examples in both Python and TypeScript.
- Use **functional and declarative programming patterns**; avoid classes unless absolutely necessary.
- Prefer **iteration and modularization** over code duplication.
- Use descriptive variable names with auxiliary verbs (e.g., `is_active`, `has_permission`, `isLoading`, `hasError`).
- Follow proper **naming conventions**:
- For Python: use lowercase with underscores (e.g., `routers/user_routes.py`).
- For TypeScript: use lowercase with dashes for directories (e.g., `components/auth-wizard`).
### Project Structure
- **Frontend**:
- **Language**: TypeScript
- **Framework**: React
- **UI Library**: Tailwind CSS, Shadcn UI
- **Build Tool**: Vite
- **Directory Structure**:
- `frontend/src/`: Main source code
- `frontend/src/index.html`: Main HTML file
- Configuration Files:
- `vite.config.ts`
- `tsconfig.json`
- `tailwind.config.js`
- `postcss.config.js`
- **Docker Files**:
- `Dockerfile`
- `Dockerfile.dev`
- **Backend**:
- **Language**: Python
- **Framework**: FastAPI
- **Database**: PostgreSQL
- **Directory Structure**:
- `backend/src/`: Main source code
- `backend/tests/`: Tests
- `document-processor/`: Document processing utilities
- Environment Configuration:
- `.env` / `.env.example`: Environment variables
- Database Configuration:
- `alembic.ini`
- `ddialog.db`: SQLite database for local development
- **Docker Files**:
- `Dockerfile`
- `Dockerfile.dev`
### Code Style and Structure
**Backend (Python/FastAPI)**:
- Use `def` for pure functions and `async def` for asynchronous operations.
- **Type Hints**: Use Python type hints for all function signatures. Prefer Pydantic models for input validation.
- **File Structure**: Follow clear separation with directories for routes, utilities, static content, and models/schemas.
- **RORO Pattern**: Use the "Receive an Object, Return an Object" pattern.
- **Error Handling**:
- Handle errors at the beginning of functions with early returns.
- Use guard clauses and avoid deeply nested if statements.
- Implement proper logging and custom error types.
**Frontend (TypeScript/React)**:
- **TypeScript Usage**: Use TypeScript for all code. Prefer interfaces over types. Avoid enums; use maps instead.
- **Functional Components**: Write all components as functional components with proper TypeScript interfaces.
- **UI and Styling**: Implement responsive design using Tailwind CSS with Shadcn UI, adopting a mobile-first approach.
- **Performance**:
- Minimize `use client`, `useEffect`, and `setState` hooks. Favor server-side rendering where possible.
- Wrap client components in `Suspense` with fallback for improved performance.
### Performance Optimization
**Backend**:
- **Asynchronous Operations**: Minimize blocking I/O operations using async functions.
- **Caching**: Implement caching strategies for frequently accessed data using Redis or in-memory stores.
- **Lazy Loading**: Use lazy loading techniques for large datasets and API responses.
**Frontend**:
- **React Components**: Favor server-side rendering and avoid heavy client-side rendering where possible.
- **Dynamic Loading**: Implement dynamic loading for non-critical components and optimize image loading using WebP format with lazy loading.
### Project Conventions
**Backend**:
1. Follow **RESTful API design principles**.
2. Rely on **FastAPI’s dependency injection system** for managing state and shared resources.
3. Use **SQLAlchemy 2.0** for ORM features, if applicable.
4. Ensure **CORS** is properly configured for local development.
5. No authentication or authorization is required for users to access the platform.
**Frontend**:
1. Optimize **Web Vitals** (LCP, CLS, FID).
2. Limit `use client` hooks to small, specific components for Web API access.
3. Use **Docker** for containerization and ensure easy deployment.
### Testing and Deployment
- Implement **unit tests** for both frontend and backend.
- Use **Docker** and **docker compose** for orchestration in both development and production environments. Avoid using the obsolete `docker-compose` command.
- Ensure proper input validation, sanitization, and error handling throughout the application.
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules