NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1052 most downloaded on pub.dev
Chopper is an http client generator using source_gen, inspired by Retrofit
Last release 5 days ago
03 Oct 2026
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 52 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
87 releases · first in 2018
Breaking change New way to handle errors if (response.isSuccessful) { final body = response.body; } else { final error = response.error; }
Breaking change New way to handle errors if (response.isSuccessful) { final body = response.body; } else { final error = response.error; }
Response.error getteronError since every response are available via onResponse streamNothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Unsuccessful response are not throw anymore, use Response.isSuccessful getter or statusCode instead
Response.isSuccessful getter or statusCode insteadFix on JsonConverter If content type header overrided using @Post(headers: {'content-type': '...'}) The converter won't add json header and won't appl
Fix on JsonConverter If content type header overrided using @Post(headers: {'content-type': '...'}) The converter won't add json header and won't apply json.encode if content type is not JSON
add bool override on applyHeader(s) functions, true by default
support List<MultipartFile>
Deprecate @FieldField, use @PartFile instead
@FieldField, use @PartFile instead*Breaking Change* Response.base is now a BaseRequest instead of a Request, which means that you can't do base.body now. Please use Response.bodyBytes…
Response.base is now a BaseRequest instead of a Request, which means that you can't do base.body now.
Please use Response.bodyBytes or Response.bodyString instead for non streaming case.Stream<List<int>> as a body to a requestStream<List<int>> as the BodyType for the response, in this case the returned response will
contain a stream in body.MutlipartFile (from packages:http) directly to @FileField annotationFix trailing slash when path empty
Default value for a path is now '' instead of '/'
'' instead of '/'*Breaking Change* ChopperClient.errorConverter is now taking an ErrorConverter as a parameter `dart abstract class ErrorConverter { FutureOr convertEr…
ChopperClient.errorConverter is now taking an ErrorConverter as a parameterabstract class ErrorConverter {
FutureOr<Response> convertError<ResultType, ItemType>(Response response);
}
Chopper.service<Type>(Type)QueryMap annotationNothing published for this version
*Breaking Change* on Converter.convertResponse (response), it take a new generic type => Converter.convertResponse (response)
Fix converter issue on List
Converter.convertResponse<ResultType>(response),
it take a new generic type => Converter.convertResponse<ResultType, ItemType>(response)deprecated Chopper.service<Type>(Type), use Chopper.getservice<Type>() instead
thanks to @MichaelDark
- fix casting issue
- Fix type safety - Fix json converter - Handle BuiltList
Nothing published for this version
Nothing published for this version
Nothing published for this version
*BreakingChange* Removed name parameter on ChopperApi New way to instanciate a service
BreakingChange
Removed name parameter on ChopperApi
New way to instanciate a service
@ChopperApi()
abstract class MyService extends ChopperService {
static MyService create([ChopperClient client]) => _$MyService(client);
}
add jsonAPI and formUrlEncodedApi boolean to ChopperClient
onError, onResponse, onRequest streamNothing published for this version
Nothing published for this version
Nothing published for this version
- update dart sdk
Nothing published for this version
the generated extension is now *.chopper.dart
the generated extension is now *.chopper.dart
rename ServiceDefinition to ChopperApi
rename ChopperClient.services field to ChopperClient.apis
Initial version, created by Stagehand
Your coding agent can read these notes before it upgrades. Set up the MCP server →