Получите запрос POST и получите элементы JSON в Java / Spring - PullRequest
0 голосов
/ 27 июня 2019

Итак, я следовал руководству Spring ниже, чтобы создать простую службу отдыха. https://spring.io/guides/gs/rest-service/

В настоящее время я могу использовать Почтальон для получения некоторых значений, используя запрос GET к URL-адресу http://localhost:8080/greeting

Теперь я хочу изменить это на запрос POST и отправить некоторую структуру JSON из Postman на мой контроллер, а также получить элементы, отправленные из Postman, и, например, распечатать их в моей консоли. Код моего контроллера выглядит так:

@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
        return new Greeting(counter.incrementAndGet(), String.format(template, name));
    }
}

Допустим, я хочу опубликовать структуру JSON:

{
  "header": {"name": "1234"},
  "address": "someplace"
}

Как мне получить и напечатать элемент адреса в моем коде Java?

Ответы [ 2 ]

2 голосов
/ 27 июня 2019

Просто создайте pojo для ваших данных запроса, таких как

public class RequestData {
    Map<String,String> header;
    String address;
}

и метод контроллера

@PostMapping("/request")
public ResponseEntity postController(
  @RequestBody RequestData requestData) {

    System.out.println(requestData.address)
    return ResponseEntity.ok(HttpStatus.OK);
}
0 голосов
/ 27 июня 2019

Если у вас есть полезная нагрузка, которая меняется в зависимости от требования, вы можете использовать карту вместо класса POJO.

@RequestMapping(value = "/greeting", method = RequestMethod.POST)
public String greeting(HashMap<String,Object> payload){
....
....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...