flutter-networking-retrofit-dio
HTTP networking standards using Dio and Retrofit with Auth interceptors.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Retrofit & Dio Networking
Priority: P0 (CRITICAL)
Type-safe REST API communication using Dio and Retrofit.
Structure
infrastructure/
├── data_sources/
│ ├── remote/ # Retrofit abstract classes
│ └── local/ # Cache/Storage
└── network/
├── dio_client.dart # Custom Dio setup
└── interceptors/ # Auth, Logging, Cache
Implementation Guidelines
-
Retrofit Clients: Define abstract classes with
@RestApi(). Use standard HTTP annotations (@GET,@POST). -
DTOs (Data Transfer Objects): Use
@freezedandjson_serializablefor all response/request bodies. -
Mapping: Data sources MUST map DTOs to Domain Entities (e.g.,
userDto.toDomain()). -
AuthInterceptor: Logic for
Authorization: Bearer <token>injection inonRequest. -
Token Refresh: Handle
401 UnauthorizedinonErrorby locking Dio, refreshing, and retrying. -
Failures: Map
DioExceptionto customFailureobjects (ServerFailure, NetworkFailure).
Anti-Patterns
-
No Manual JSON Parsing: Do not use
jsonDecode(response.body); use Retrofit's generated mappers. - No Global Dio: Do not use a static global Dio instance; use dependency injection.
-
No Try-Catch in API: Do not put
try-catchinside the Retrofit interface methods.
Reference & Examples
For RestClient definitions and Auth Interceptor implementation: See references/REFERENCE.md.
Related Topics
feature-based-clean-architecture | error-handling
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!