我有几个 API 的 spring MVC 控制器,我想获取从前端命中的 API 的 URI
我有一个过滤器扩展 oncePerRequestFilter,它拦截每个 api 调用,过滤器有接受 HttpServletRequest、HttpServletResponse 和 filterChain 的方法。我可以使用 urirequest.getRequestURI()但如果 uri 具有模板路径变量,可以说 uri ="q/v1/ruleset/{rulesetId}" 我正在获取最终的 uri,例如 API 已被命中rulesetid=23,我从中获取的 urirequest.getRequestURI()是 "q/v1/ruleset/23"但我想要的是uri ="q/v1/ruleset/{rulesetId}",有没有任何方法可以得到预期的结果,我知道,我总能通过一些操作得到想要的结果,但我想让事情变得通用,请帮忙
我有包含 API 的控制器
@RequestMapping(value = "/ruleset/{rulesetid}", method =
RequestMethod.GET)
public RuleSet getRuleSet(@PathVariable(value = "rulesetid")
final Long ruleSetId) {
return storeMixin.getRuleSet(ruleSetId);
}
筛选
@Component
@Order(1)
public class CatalogFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response,FilterChain filterChain) throws
IOException, ServletException {
long startTime = System.currentTimeMillis();
filterChain.doFilter(request, response);
long elapsed = System.currentTimeMillis() - startTime;
String name = request.getRequestURI();
String requestType = request.getMethod();
Integer httpCode = response.getStatus();
}
}
犯罪嫌疑人X
慕婉清6462132
守着一只汪
手掌心
holdtom
相关分类