Как я могу сервер 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, исходящего из другого приложения, которое также находится на локальном хосте.
Возможный дубликат Spring MVC: чтение файла из src / main / resources




Определите 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;
}
}
Или верните ресурс напрямую (при установке соответствующего типа контента).