Spring RestController: возврат ресурса JSON

Как я могу сервер JSON на локальном хосте с помощью Spring? Я хочу обслуживать JSONFile из каталога ресурсов проекта через RestController.

Пока у меня есть:

@RestController
public class JSONRestController {

    @GetMapping("/list")
    public String listUsers(){
        ClassLoader classLoader = getClass().getClassLoader();
        File file = new File(classLoader.getResource("fileName").getFile());
        //or with an external library: org.springframework.util.StreamUtils
        String msg = StreamUtils.copyToString( new ClassPathResource("list.json").getInputStream(), Charset.defaultCharset()  );

        return file.toString() //not an existing method
    }
}

Цель состоит в том, чтобы иметь приложение Spring, которое может обслуживать файл JSON из ресурсов через конечную точку REST. Я хочу получить файл из каталога ресурсов и вернуть его как JSON из конечной точки ResController. Затем я хочу получить к нему доступ с помощью запроса GET, исходящего из другого приложения, которое также находится на локальном хосте.

Или верните ресурс напрямую (при установке соответствующего типа контента).

Savior 21.08.2018 00:54

Возможный дубликат Spring MVC: чтение файла из src / main / resources

Kevin Raoofi 21.08.2018 01:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
931
1

Ответы 1

Определите RestController, который извлекает JSON из каталога ресурсов и возвращает его через конечную точку REST. Здесь JSON в ресурсах называется items.json, а конечной точкой будет localhost:8080/db (при условии, что вы не изменили свойство server.port).

@RestController
public class JSONController {

private JSONObject jsonObject;

    @GetMapping("/db")
    @CrossOrigin
    public JSONObject getJSON(){

        try {
            Resource resource = new ClassPathResource("/items.json");
            InputStream resourceInputStream = resource.getInputStream();
            JSONParser jsonParser = new JSONParser();
            jsonObject = (JSONObject)jsonParser.parse(
                    new InputStreamReader(resourceInputStream, "UTF-8"));

        } catch (IOException | ParseException e) {
            e.printStackTrace();
        }

        return jsonObject;
    }
}

Другие вопросы по теме