1

我正在编写一个带有分页的 REST API 端点,我希望它包含指向第一页、上一页、下一页和最后一页的链接。我还希望这些链接包含原始请求中发送的任何参数(顺便说一句,这是个坏主意吗?)。

我正在使用 UriBuilder 类来创建这些链接。我的功能如下所示:

private static URI createUri(String endpoint, 
    MultivaluedMap<String, String> queryParameters) {
    final UriBuilder uriBuilder = UriBuilder.fromPath(endpoint);
    queryParameters.forEach(
        (key, valueList) -> valueList.forEach(
            value -> uriBuilder.queryParam(key, value)));
    return uriBuilder.build();
}

现在,我不希望对这个链接中的参数进行编码,因为任何将要使用 API 的人都应该能够读取它们。问题是 UriBuilder.queryParam()接缝总是对它们进行编码。

我可以简单地将参数连接到端点,但我觉得这将是重新发明轮子。所以我想知道是否有更好的方法来做到这一点。

4

1 回答 1

0
uriBuilder.build(false).toUriString()
于 2021-03-16T11:18:41.873 回答