我很难理解以下 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+.*)
-- 那到底是什么?
最佳答案
冒号后面的部分是正则表达式。 \D
表示“非数字”,因此zodeid部分必须包含非数字,即
OK: /v1/firewall/policy/12X
Not OK: /v1/firewall/policy/123
仅供引用,+
表示“至少一个”,可以删除而不会产生任何影响,因为一个是至少一个。
顺便说一句,我上次尝试时,如果您希望值中包含点,则必须使用允许点的正则表达式,例如 field:.*
,因为默认行为不允许点.
关于java - @RequestMapping(value = "v1/firewall/policy/{zoneId:.*\\D+.*}") 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52265517/