mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-31 00:10:22 +08:00
- Revised the README files for shared data and main data layers to improve clarity and structure. - Consolidated documentation on shared data types and API types, removing the now-deleted `api-design-guidelines.md`. - Streamlined directory structure descriptions and updated links to relevant documentation. - Enhanced quick reference sections for better usability and understanding of the data architecture.
43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
# Data API Type System
|
|
|
|
This directory contains type definitions for the DataApi system.
|
|
|
|
## Documentation
|
|
|
|
- **DataApi Overview**: [docs/en/references/data/data-api-overview.md](../../../../docs/en/references/data/data-api-overview.md)
|
|
- **API Types**: [api-types.md](../../../../docs/en/references/data/api-types.md)
|
|
- **API Design Guidelines**: [api-design-guidelines.md](../../../../docs/en/references/data/api-design-guidelines.md)
|
|
|
|
## Directory Structure
|
|
|
|
```
|
|
packages/shared/data/api/
|
|
├── index.ts # Barrel exports
|
|
├── apiTypes.ts # Core request/response types
|
|
├── apiPaths.ts # Path template utilities
|
|
├── apiErrors.ts # Error handling
|
|
└── schemas/
|
|
├── index.ts # Schema composition
|
|
└── *.ts # Domain-specific schemas
|
|
```
|
|
|
|
## Quick Reference
|
|
|
|
### Import Conventions
|
|
|
|
```typescript
|
|
// Infrastructure types (via barrel)
|
|
import type { DataRequest, DataResponse, ApiClient } from '@shared/data/api'
|
|
import { ErrorCode, DataApiError, DataApiErrorFactory } from '@shared/data/api'
|
|
|
|
// Domain DTOs (directly from schema files)
|
|
import type { Topic, CreateTopicDto } from '@shared/data/api/schemas/topic'
|
|
import type { Message, CreateMessageDto } from '@shared/data/api/schemas/message'
|
|
```
|
|
|
|
### Adding New Schemas
|
|
|
|
1. Create schema file in `schemas/` (e.g., `topic.ts`)
|
|
2. Register in `schemas/index.ts` using intersection type
|
|
3. Implement handlers in `src/main/data/api/handlers/`
|