我有一个具有多个请求Map的端点,如:
@PutMapping(path = {
"/A/{ACode}/B/{BCode}/C/{CCode}/D/{DCode}",
"/A/{ACode}/B/{BCode}/D/{DCode}",
"/A/{ACode}/C/{CCode}/D/{DCode}",
"/A/{ACode}/D/{DCode}"
})
其中acode、bcode、ccode和dcode都是路径变量。b、 c和它们各自的代码是可选的,而a、d和它们各自的代码是强制性的。
我可以通过以下方式调用上述api:
PUT /A/IN/B/delhi/C/central/D/110001
PUT /A/IN/B/delhi/D/110001
PUT /A/IN/C/central/D/110001
PUT /A/IN/D/110001
我正在尝试将所有这些请求Map组合到一个可以匹配所有这些组合的regex中。
我尝试在Map中使用此正则表达式,但它不起作用:
@PutMapping(path = {
"A/{ACode:[A-Z]+}(/B/{BCode:[a-z0-9-]+})?(/C/{CCode:[a-z0-9-]+})?/D/{DCode:[a-z0-9-]+}"
})
这一个可以工作,但它不能使b,c和各自的代码可选,所以不能使用:
@PutMapping(path = {
"A/{ACode:[A-Z]+}/B/{BCode:[a-z0-9-]+}/C/{CCode:[a-z0-9-]+}/D/{DCode:[a-z0-9-]+}"
})
我使用的regex有什么问题吗?或者除了使用请求参数代替路径变量之外,还有什么解决方法来实现这种功能吗?
谢谢你的帮助!
暂无答案!
目前还没有任何答案,快来回答吧!