Класс CountryResource
должен иметь метод, аннотированный @Path
для подресурса CityResource
. По умолчанию вы несете ответственность за создание экземпляра CityResource
, например,
@Path("country/state/{stateName}")
class CountryResouce {
@PathParam("stateName")
private String stateName;
@Path("city/{cityName}")
public CityResource city(@PathParam("cityName") String cityName) {
State state = getStateByName(stateName);
City city = state.getCityByName(cityName);
return new CityResource(city);
}
}
class CityResource {
private City city;
public CityResource(City city) {
this.city = city;
}
@GET
public Response get() {
// Replace with whatever you would normally do to represent this resource
// using the City object as needed
return Response.ok().build();
}
}
CityResource
предоставляет методы для обработки глаголов HTTP (GET
в данном случае).
Для получения дополнительной информации обратитесь к документации на Джерси , касающейся локаторов подресурсов.
Также обратите внимание, что Джерси предоставляет ResourceContext для получения it для создания экземпляра подресурса. Если вы собираетесь использовать @PathParam
или @QueryParam
в подресурсе, я считаю, что вам нужно использовать это, поскольку среда выполнения не затрагивает подресурсы, когда вы сами создаете через new
.