我正在开发一个Web应用程序,该应用程序使用服务器上的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 ...]
答案 0 :(得分:1)
将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());
答案 1 :(得分:0)
您可以在春季使用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());
}