Постмаппирование с параметрами из URI - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь создать метод весенней загрузки @PostMapping, который получает свои параметры из URI, что-то вроде http://localhost:8091/url/log?param1=asdf&param2=asd&param3=test или как это http://localhost:8091/url/log/msg/msg1/msg2

Есть ли способ расширитьМодель кода снизу до 3-х параметров? headers.setLocation (builder.path ("/ article / {param1} / {param2} / {param3}")

@PostMapping("article")
    public ResponseEntity<Void> addArticle(@RequestBody ArticleInfo articleInfo, UriComponentsBuilder builder) {
        Article article = new Article();
        BeanUtils.copyProperties(articleInfo, article);


            HttpHeaders headers = new HttpHeaders();
            headers.setLocation(builder.path("/article/{id}").buildAndExpand(article.getArticleId()).toUri());
            return new ResponseEntity<Void>(headers, HttpStatus.CREATED);
}

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

Если вы просто хотите, чтобы ваш вызов API создавал новую Статью, как насчет того, чтобы просто иметь от PostMapping до /article/new (например), а затем просто передать параметры новой Статьи как RequestBody?

@PostMapping("article/new")
public ResponseEntity<Void> addArticle(@RequestBody Article article) {
// ...
}

Тогда как RequestBody у вас будет что-то вроде:

{ "param1": "value1", "param2": "value2", "param3": "value3" }

Если вы просто хотите включить больше PathVariable в ваш вызов API, обратитесь к ответу @sovannarith cheav

Я надеюсь, что этопомогает

0 голосов
/ 18 октября 2019

Есть ли способ расширить модель кода снизу до 3 параметров? headers.setLocation (builder.path ("/ article / {param1} / {param2} / {param3}")

Вы можете использовать @ PathVariable , как показано ниже

@PostMapping("article/{param1}/{param2}/{param3}")
public ResponseEntity<Void> addArticle(@PathVariable("param1") String param1, @PathVariable("param3") String param3, @PathVariable("param3") String param3) {
    //enter code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...