Тело ответа на список или карту весной - PullRequest
1 голос
/ 10 июня 2019

Я занимаюсь разработкой веб-приложения, которое использует API REST с сервера и отображает данные. Я не уверен, как сделать звонок и как управлять ответом в Spring.

У меня есть класс Controller, который сопоставлен с запросом POST, который представляет собой действие кнопки для отображения информации, находящейся на сервере, которая возвращает мне один вызов REST API. Вот метод, о котором я говорю. Что мне нужно, так это просто показать данные, в этих категориях дел, в виде таблицы, которую я передам представлению. Но я не могу (не знаю), как конвертировать то, что я получаю, во что-то вроде Списка или Карты ...

    @PostMapping(value = "/showAreas")
public String getAllAreas(Model model) throws IOException {

    TokenRepositoryImpl token = new TokenRepositoryImpl();
    tokenId = token.getToken();

    OkHttpClient client = new OkHttpClient();

    Request request = new Request.Builder().url("http://XXX.XX.XX.XX:8888/api/1.0/test/project/categories").get()
            .addHeader("Authorization", "Bearer " + tokenId.getAccess_token()).build();

    Response response = client.newCall(request).execute();

    System.out.println(response.body().string());

    //This is what I need: List<JSONObject> areas = new ArrayList<JSONObject>();

    return "areasView";

}

То, что я получаю в системе, это: [{"cat_uid": "8650262225c0e95e609fa16018826000", "cat_name": "X XXX", "cat_total_processes": X}, {"cat_uid": "2 ...]

Ответы [ 2 ]

1 голос
/ 10 июня 2019

Добавьте List or Map к вашему Model объекту, который передается в параметрах, и затем вы можете снова получить к нему доступ с помощью объекта Model. например:

Request request = new Request.Builder().url("http://XXX.XX.XX.XX:8888/api/1.0/test/project/categories").get()
            .addHeader("Authorization", "Bearer " + tokenId.getAccess_token()).build();

Response response = client.newCall(request).execute();
model.setAttribute("response",response.body());
0 голосов
/ 10 июня 2019

Вы можете использовать ResponseEntity весной

@PostMapping(value = "/showAreas")
public ResponseEntity getAllAreas(Model model) throws IOException {

    TokenRepositoryImpl token = new TokenRepositoryImpl();
    tokenId = token.getToken();

    OkHttpClient client = new OkHttpClient();

    Request request = new Request.Builder().url("http://XXX.XX.XX.XX:8888/api/1.0/test/project/categories").get()
            .addHeader("Authorization", "Bearer " + tokenId.getAccess_token()).build();

    Response response = client.newCall(request).execute();

    return ResponseEntity.ok(response.body());

}
...