如何解决Java ApiBuilder中含斜杠的ID路径参数API运行问题
解决Javalin ApiBuilder中路径参数含斜杠导致端点匹配失败的问题
在使用Javalin的ApiBuilder定义POST接口时,若加密生成的ID包含斜杠(/),使用{id}作为路径参数占位符会导致请求无法匹配端点——因为斜杠会被解析为URL路径的一部分,而非参数的组成部分。
问题复现代码
ApiBuilder.post("http://localhost:5008/api/update/{id}") { // 业务处理逻辑 }
示例ID值:mxCSRO3qErTy7eO77HJeUvBiKXM/1i1cd3GdHuqdeSz/lyLU/N7cBCz3eZoIUyybhhmpAeJ1IABomr8Kv0IDKA==
解决方案
根据Javalin官方文档,只需将路径参数的占位符格式从{id}改为<id>即可。修改后的代码如下:
ApiBuilder.post("http://localhost:5008/api/update/<id>") { // 业务处理逻辑 }
<id>格式会让Javalin将该位置到URL末尾的所有内容(包括其中的斜杠)都作为id参数的完整值,从而正确匹配端点并获取到包含斜杠的ID。
内容的提问来源于stack exchange,提问作者patani20
相关产品推荐
相关产品推荐

