Swagger,Endpoints和Pathparameters

时间:2015-12-02 12:16:36

标签: web-services rest jax-rs swagger

TLDR:多个路径参数和带Swagger的端点

我想要的是一些像这样的API端点:

/foo/{id}/bar

现在afaik foo或路径中的第一个节点正在定义端点以及aqcuire的资源。因此生成FooApiServiceImpl。

生成的ProjectsApiService存根看起来像这个atm:

@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连接到Foo的所有{id}资源。有点像相反的顺序。这有可能吗?

如果这是不可能的......那么还想问一下,我如何获得未在括号中定义为{xxx}参数的url节点(foo,bar)?

这样的事情:

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

1 个答案:

答案 0 :(得分:0)

要获取路径段,请在资源类或方法中注入UriInfo

<meta property="article:author" content="https://www.facebook.com/MYSITE" />
<meta property="article:publisher" content="https://www.facebook.com/MYSITE" />

然后从中调用UriInfo.getPathSegments()

@Context
private UriInfo uriInfo;

请参阅UriInfo.getPathSegments()文档:

  

获取当前请求相对于基URI的路径作为PathSegment的列表。 当需要解析路径时,此方法很有用,特别是当路径中可能存在矩阵参数时。路径段和矩阵参数值中的所有转义八位字节序列都将被解码,相当于getPathSegments(true)