I need help.
I have an endpoint that takes a parameter. Depending on this parameter, the JSON
returned will be completely different.
Is it possible for RetroFit
to handle this?
For example:
http://myserver.com/all/<parameter>
where parameter is BUS
or BICYCLE
, as well as adding others later.
An example BUS
request will return:
"stops": [{
"Lat": "....",
"Lng": "....",
"Name": "Main Street",
"Route": "",
"StopNumber": "2"
}]
The BICYCLE
endpoint will return:
"stops": [{
"address": "Town Centre",
"lat": "....",
"lng": "....",
"number": "63",
"open": "1"
}]
Depending on which section of my Android app that the user is in, I would like to send a different parameter, and be able to handle it using the same call.
I was thinking of using a parent class called AllTypes
that each of the other classes extend, and then setting my Retrofit
call signature to:
@GET("/all/{type}")
void getAll(@Path("type") String type, Callback<AllTypes> callback);
But I'm not sure if Retrofit
can automatically pick the correct child class for AllTypes
based on the returned JSON
, or even the passed parameter type
.
Does anyone know how to do this? If not, I'll just have to create multiple different methods with different Callback types.
Thanks.