+73
- 1
- 2
- 3
- 4
- 5
- 6
- 7
@GET
@Path("/store")
void getStoreSummary(@QueryParam("id") final String id, final MethodCallback<StoreSummary> callback);
@GET
@Path("/store")
void getStoreDetails(@QueryParam("id") final String id, @QueryParam("detailed") final boolean mustBeTrue, final MethodCallback<StoreInfo> callback);
Есть API-вызов HTTP GET, который по ?detailed=true возвращает расширенный JSON с дополнительными полями.
И вот в RestyGWT, оказывается, по-другому никак. То есть если бы других параметров запроса не было, можно было бы просто написать
@Path("/store?detailed=true")
. Но он не умеет добавлять динамические параметры запроса к захардкоженным. Если попытаться - получается два вопросительных знака: [/code]/store?detailed=true?id=[id][/code].
Запостил:
someone,
06 Ноября 2014
We're leaving ground
Will things ever be the same again?
It's the final boolean
It's the final boolean...
@QueryParam(name="detailed", defaultValue=Boolean.FALSE)
Да есть что-то такое
@DefaultValue("false") вроде
RestyGWT берёт аннотации из JAX-RS, а там такого нет. Есть @DefaultValue, но он всё равно не поможет, потому что аннотации вешаются на параметры, а не на метод. А пропустить параметр в любом случае нельзя. Если порыться в исходниках, то увидим, что он читает @QueryParam только на параметрах метода, а не на самом методе.
В общем, я считаю, что невозможность склейки параметров строки запроса - это баг. Запощу.
Кстати, Spring MVC прекрасно работает на аннотациях. Ну тоесть он конечно же гуано, но все остальные фреймворки в тысячу раз хуже.
собственно, параметры никогда не были частью рутов. на то они и параметры, что анализируются кодом.