2015-12-02 2 views
0

TLDR: Несколько Pathparameters и Endpoints с SwaggerКураж, Endpoints и Pathparameters

Что я хотел бы, чтобы некоторые API Endpoint так:

/foo/{id}/bar 

Теперь AFAIK foo или первый узел в пути определяет конечную точку, а также ресурс для aqcuire. Поэтому создается FooApiServiceImpl.

Сформированный ProjectsApiService окурок выглядит следующим образом ата:

@GET 
@Path("/{id}/bars") 
... 
public Response getBarsByFooId(@ApiParam(value = "The id of the foo with the bars",required=true) @PathParam("id") String id) 
throws NotFoundException { 
    return delegate.getBarByFooId(id); 
} 

Теперь мой хотел поведение было бы получить все Bar ресурсы, которые connectted к Foo с данным {id}. Это похоже на обратный порядок. Это возможно?

Если это невозможно ... то также хотелось бы спросить, как я могу получить url-узлы (foo, bar), которые не определены как {xxx} paramators в скобках?

Что-то вроде этого:

public Response getBarsByFooId(String foo, String id, String bar) 
throws NotFoundException { 
    return delegate.getBarByFooId(id); 
} 

ответ

0

Чтобы получить сегменты дорожки, впрыснуть UriInfo в своем классе ресурсов или метода:

@Context 
private UriInfo uriInfo; 

а затем вызвать UriInfo.getPathSegments() из него:

List<PathSegment> segments = uriInfo.getPathSegments(); 

См UriInfo.getPathSegments() документацию:

Получить путь текущего запроса относительно основания URI в виде списка PathSegment. Этот метод полезен, когда путь должен быть проанализирован, особенно когда параметры матрицы могут присутствовать в пути. Все последовательности экранированных октетов в сегментах тракта и значениях параметров матрицы декодируются, что эквивалентно getPathSegments(true).

Смежные вопросы