我在理解以下Rest终结点正在做什么时遇到了很多麻烦-更具体地说,value = "v1/firewall/policy/{zoneId:.*\\D+.*}"
部分:
@RequestMapping(
method = {RequestMethod.PUT, RequestMethod.POST},
value = "/v1/firewall/policy/{zoneId:.*\\D+.*}",
headers = "Accept=application/json"
)
public ResponseEntity post_policy(@RequestBody InformationPolicy informationPolicy,
@RequestHeader("deployment-id") String deploymentId) {
someService.process(policyInformation, deploymentId);
return createResponse(new RestStatus(HttpStatus.OK));
}
我知道我应该为"{zoneId:.*\\D+.*}"
传递一些值,我只是从未见过(zoneId:.*\\D+.*)
之前的格式-这到底是什么?
答案 0 :(得分:2)
冒号后的部分是正则表达式。 \D
的意思是“非数字”,因此zodeid部分必须包含一个非数字,即
OK: /v1/firewall/policy/12X
Not OK: /v1/firewall/policy/123
仅供参考,+
的意思是“至少一个”,因为一个是至少一个,因此不会产生任何影响。
顺便说一句,我上一次尝试,如果要在值中使用点,则必须使用允许点的正则表达式,例如field:.*
,因为默认行为是不允许点。