如何在没有编码参数的情况下使用UriBuilder.queryParam?



我正在编写一个带有分页的 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()接缝以始终对它们进行编码。

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

uriBuilder.build(false).toUriString()

相关内容

  • 没有找到相关文章

最新更新