Решение проблемы управления версиями в API, который не был ранее версионную, я бегу на вопрос: У меня есть два ресурса, установленные на одной и той же URL конечной точки:Java API ресурсов приказывать
@Path("/api/foo/")
public class FooResourceOne {
@GET
public Response getFoo() {
return Response.ok("Hello from One").build();
}
}
@Path("/api/foo/")
@Consumes("application/vnd.example.v2+json")
public class FooResourceTwo {
@GET
public Response getFoo() {
return Response.ok("Hello from Two").build();
}
}
проблема заключается в том, что если вы отправляете запрос GET с заголовком Content-Type
(например, Content-Type: application/json
), он отправляется на обработку FooResourceOne
. И если вы укажете Content-Type: application/vnd.example.v2+json
, он будет правильно соответствовать FooResourceTwo
. Все хорошо и хорошо.
Однако, если вы не указали заголовок Content-Type на всех, он идет к FooResourceTwo
, который не является правильным?
Не имеет знака «@Consumes
» означает «принимает любые», но кажется, что «какой-либо» не включает «не указано»? Вернее, «не указано» означает, что кто-нибудь (и порядок загрузки важен)?
Есть ли способ указать FooResourceOne
это ресурс, который должен реагировать, когда нет заголовка Content-Type не дается вообще?
Какой REST реализации вы используете 'Resteasy/CXF/Джерси'? – 11thdimension
Считаете ли вы, что добавить фильтр отдыха и добавить в контентный тип предпочтительный заголовок? –
Что происходит, когда вы добавляете другой метод только с '@ Path' и без' @ Consumes'? – 11thdimension