This chapter is dedicated to obtaining Responses from an api using libraries Chopper and JsonConverter.
The code in Github is here
He also proposes the use of a response wrapper like functional programming, of the type Success/Error.
The ModelConverter from Response to Success/Error wrapper, applies to the APIRecipeQuery Model and only uses one method in this line final recipeQuery = APIRecipeQuery.fromJson(mapData);
.
It seems quite logical to make a generic ModelConverter, since it is a very useful class.
So, I have tried by passing the model in the constructor as a parameter:
class ModelConverter <T extends JsonConverter> implements Converter {
final T model;
ModelConverter ({@required this.model});
. . .
and I invoke it in recipe_service.dart with converter: ModelConverter(model: APIRecipeQuery), but I don’t know how to reference the model statically before it’s created, and can’t access the method model.fromJson
Next, I have tried passing just the function converter:
class ModelConverter implements Converter {
Function fromJson;
ModelConverter ({@ required this.fromJson});
. . .
with a getter in the API, and in recipe_service.dart
with converter: ModelConverter(fromJson: APIRecipeQuery.fjConverter)
class APIRecipeQuery {
static Function get fjConverter => _ $ APIRecipeQueryFromJson;
. . .
But I can’t get it to work.
What would be the best approach to make the ModelConverter generic?
Thanks in advance.