当前位置: 代码迷 >> 综合 >> spring 的restful风格api与绝路路径的api优先级关系
  详细解决方案

spring 的restful风格api与绝路路径的api优先级关系

热度:49   发布时间:2024-02-06 20:02:13.0

安全监控平台对上报的restful风格进行映射转换,以免出现无数个api的问题。

有的工程将restful风格与绝对路径混用了,导致绝对路径的也被当做restful风格的了,丢失api信息。

 

eg:

绝对路径:/help/info

restful风格:/help/{infoid}

 

经过实际测试,两种可以同时存在,即使都使用同样的get或post方式。

 

在使用spring boot 自带的遍历出所有restful风格api时,吧 /help/info 映射成了 /help/{info},然后 参数infoid="info",并非想要的结果。

 

实际测试,后台响应中,绝对路径的api更高,eg /help/1234  会先去找 这样 的绝对路径有没有,没有的话才会去匹配 /help/{infoid}的restful风格api。

 

但在spring boot自带遍历所有api中,是需要自己手动控制优先级,比如过滤时,将/help/info放在最前 ,则优先映射成/help/info得到正确结果。如果将/help/{infoid}放在最前,那么就永远优先过滤映射为/help/{infoid},无法得到正确的结果。

  相关解决方案