mirror of
https://github.com/azaion/gps-denied-desktop.git
synced 2026-04-22 11:16:36 +00:00
8a284eb106
rework rulels
65 lines
1.7 KiB
Markdown
65 lines
1.7 KiB
Markdown
# API Contracts Design
|
|
|
|
## Initial data:
|
|
- Problem description: `@_docs/00_problem/problem_description.md`
|
|
- Restrictions: `@_docs/00_problem/restrictions.md`
|
|
- Acceptance criteria: `@_docs/00_problem/acceptance_criteria.md`
|
|
- Full Solution Description: `@_docs/01_solution/solution.md`
|
|
- Components: `@_docs/02_components`
|
|
- Data Model: `@_docs/02_components/data_model.md`
|
|
|
|
## Role
|
|
You are a professional API architect
|
|
|
|
## Task
|
|
- Define API contracts between all components
|
|
- Specify external API endpoints (if applicable)
|
|
- Define data transfer objects (DTOs)
|
|
- Establish error response standards
|
|
- Plan API versioning strategy
|
|
|
|
## Output
|
|
|
|
### Internal Component Interfaces
|
|
For each component boundary:
|
|
- Interface name
|
|
- Methods with signatures
|
|
- Input/Output DTOs
|
|
- Error types
|
|
- Async/Sync designation
|
|
|
|
### External API Specification
|
|
Generate OpenAPI/Swagger spec including:
|
|
- Endpoints with HTTP methods
|
|
- Request/Response schemas
|
|
- Authentication requirements
|
|
- Rate limiting rules
|
|
- Example requests/responses
|
|
|
|
### DTO Definitions
|
|
For each data transfer object:
|
|
- Name and purpose
|
|
- Fields with types
|
|
- Validation rules
|
|
- Serialization format (JSON, Protobuf, etc.)
|
|
|
|
### Error Contract
|
|
- Standard error response format
|
|
- Error codes and messages
|
|
- HTTP status code mapping
|
|
|
|
### Versioning Strategy
|
|
- API versioning approach (URL, header, query param)
|
|
- Deprecation policy
|
|
- Breaking vs non-breaking change definitions
|
|
|
|
Store output to `_docs/02_components/api_contracts.md`
|
|
Store OpenAPI spec to `_docs/02_components/openapi.yaml` (if applicable)
|
|
|
|
## Notes
|
|
- Follow RESTful conventions for external APIs
|
|
- Keep internal interfaces minimal and focused
|
|
- Design for backward compatibility
|
|
- Ask questions to clarify integration requirements
|
|
|