api_contract_generator 0.2.0
api_contract_generator: ^0.2.0 copied to clipboard
Annotation-based code generator for api_contract. Automatically generate API contract definitions from annotated Dart classes.
Changelog #
0.2.0 #
Features #
- Code generation from model classes: Use
@ApiContractSchemaannotation on Dart classes to auto-generate contracts - Type inference: Automatically detects field types from model structure (int, String, DateTime, nested models, etc.)
- Built-in type support: Handles
DateTime,Uri,Duration,BigInt,RegExpand maps them to appropriate JSON types - ContractMode enum: Use
ContractMode.strictorContractMode.lenientinstead of string values - Field annotations: Fine-grained control with
@optionaland@nullableannotations - Multiple generation modes:
fromModel- infers contracts from model class structure (recommended)fromJson- generates from JSON with callbackfromJsonSchema- generates from schema map
- Nested contract support: Automatically generates contracts for referenced model classes
- Nullable type handling: Proper handling of nullable types (e.g.,
Profile?→profileContract, notprofile?Contract)
Improvements #
- Removed dependency on path-based
api_contract, now uses published package^0.2.0 - Better error messages in generated code
- Cleaner generated output with proper formatting
- Annotation priority: Explicit
@optional/@nullableannotations override type inference
Bug Fixes #
- Fixed nullable type name generation (removed
?from variable names) - Fixed enum mode reading in annotation processor
- Fixed annotation priority in
fromModelmode - Fixed duplicate
ContractModeenum issue
Breaking Changes #
- Package renamed from
http_contract_tester_generatortoapi_contract_generator - Updated to work with
api_contract0.2.0 (renamed fromhttp_contract_tester) ContractModeis now an enum, not a string- Simplified annotation system - removed verbose field-level annotations in favor of model-based generation
0.1.0 #
- Initial release
- Basic contract generation from annotations