Что делает @RequestMapping (value = "v1 / firewall / policy / {zoneId:. * \\ D +. *}")? - PullRequest
0 голосов
/ 11 сентября 2018

У меня много проблем с пониманием того, что делает следующая конечная точка 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+.*) - какого черта это?

1 Ответ

0 голосов
/ 11 сентября 2018

Часть после двоеточия является регулярным выражением. \D означает «не цифра», поэтому часть zodeid должна содержать не цифру, то есть

OK:     /v1/firewall/policy/12X
Not OK: /v1/firewall/policy/123

К вашему сведению +, что означает «по крайней мере один», может быть удалено без какого-либо эффекта, потому что один - по крайней мере один.

Кроме того, в прошлый раз, когда я пытался, если вам нужны точки в вашем значении, вы должны использовать регулярное выражение, которое разрешает точки, например, field:.*, потому что поведение по умолчанию не разрешает точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...