У меня есть конечная точка API, который определяется как:Могу ли я использовать varargs в декларации метода переоснащения?
GET https://api-server.com/something/{id_or_ids}
где ids
может быть один объект идентификатор или разделённых запятыми список идентификаторов.
, например.
https://api-server.com/something/abcd1234
https://api-server.com/something/abcd1234,abcd4567,gdht64332
если одиночный идентификатор дается (и соответствующий объект найден) я вернусь объект JSon:
{ "blah" : "blah" }
Если несколько идентификаторов приведены, Я получаю ответ в json array:
[{"blah1":"bleh"}, {"blah2":"meh"}, {"blah3":"blah"}]
В настоящее время я думал, что я должен выполнять это как два метода (это может быть сделано в одном?):
один, что принимает один идентификатор и возвращает один объект:
@GET("/something/{id}")
void getObject (@Path("id") String objectId, Callback<MyObject> callback)
и
один, что занимает несколько идентификаторов и возвращает массив объектов.
@GET("/something/{ids}")
void getObject (Callback<MyObject[]> callback,@Path("ids") String ... objectIds)
Есть ли способ, чтобы кормить 2-й метод и переменные аргументы сцепить их в поле ID?
Благодаря
Thanks Jake. Конечно, я согласен с тем, что любой вид разделителя соединений может быть допустимым прецедентом. Я думал, что может быть тип решения * path transformer *, где преобразование по умолчанию - это 'toString', но могут быть предоставлены альтернативные преобразования (в данном конкретном случае - разделитель запятой).Я думаю, что попробую альтернативу пользовательских объектов. – copolii