# API CLIENTS KNOWLEDGE BASE

**Generated:** 2026-01-28
**Parent:** EmailBill/AGENTS.md

## OVERVIEW
Axios-based HTTP client modules for backend API integration with request/response interceptors.

## STRUCTURE
```
Web/src/api/
├── request.js                 # Base HTTP client setup
├── auth.js                    # Authentication API
├── budget.js                  # Budget management API
├── transactionRecord.js       # Transaction CRUD API
├── transactionCategory.js     # Category management
├── transactionPeriodic.js     # Periodic transactions
├── statistics.js              # Analytics API
├── message.js                 # Message API
├── notification.js           # Push notifications
├── emailRecord.js            # Email records
├── config.js                 # Configuration API
├── billImport.js             # Bill import
├── log.js                    # Application logs
└── job.js                    # Background job management
```

## WHERE TO LOOK
| Task | Location | Notes |
|------|----------|-------|
| Base HTTP setup | request.js | Axios interceptors, error handling |
| Authentication | auth.js | Login, token management |
| Budget data | budget.js | Budget CRUD, statistics |
| Transactions | transactionRecord.js | Transaction operations |
| Categories | transactionCategory.js | Category management |
| Statistics | statistics.js | Analytics, reports |
| Notifications | notification.js | Push subscription handling |

## CONVENTIONS
- All functions return Promises with async/await
- Error handling via try/catch with user messages
- HTTP methods: get, post, put, delete mapping to REST
- Request/response data transformation
- Token-based authentication via headers
- Consistent error message format

## ANTI-PATTERNS (THIS LAYER)
- Never fetch directly without going through these modules
- Don't hardcode API endpoints (use environment variables)
- Avoid synchronous operations
- Don't duplicate request logic across components
- No business logic in API clients

## UNIQUE STYLES
- Chinese error messages for user feedback
- Automatic token refresh handling
- Request/response logging for debugging
- Paged query patterns for list endpoints
- File upload handling for imports