Invoking REST API using spring resttemplate with JSON Response as POJO will degrade the performance?

回眸只為那壹抹淺笑 提交于 2019-12-11 18:16:18

问题


Greetings Spring Experts,

I am new to spring and trying to invoke an api using RestTemplate from my @Service class. I will be getting the response in the from of JSON.

I followed the json parsing with resttemplate to create my POJOs from the JSON response and used the following code to invoke the Rest API.

ResponseEntity<BackendAPI> response = restTemplate.exchange(URL,
            HttpMethod.GET, requestEntity, BackendAPI.class);

Then using the getter setters I am extracting the values from BackendAPI class and creating the JSON Object FrontendAPI.class to send the response to the caller of my sprint boot api.

Now there is another way of doing the same without manually creating the POJOs rather using ObjectMapper to dynamically create the JSON Object from the backend api response and traversing through the nodes to retrieve the values to create the FrontendAPI.class object as below.

String  response = restTemplate.getForObject(targetUrl, String.class);
 System.out.println(response);
 ObjectMapper mapper = new ObjectMapper();
 JsonNode rootNode = mapper.readValue(response, JsonNode.class);
 JsonNode uri = rootNode.get("uri");

My JSON response from backend is similar to below

{
"@odata.context": "some context value here",
"value": [{
    "@odata.id": "odata id value1",
    "@odata.etag": "W/\"CQEet/1EgOuA\"",
    "Id": "id1",
    "Subject": "subject1"
}, {
    "@odata.id": "odata id value2",
    "@odata.etag": "W/\"CyEet/1EgOEk1t/\"",
    "Id": "id2",
    "Subject": "subject2"
}]

}

And I have 10 such endpoints to deal with.

So my real concern is by creating the POJOs from JSON and using resttemplate.exchange method to automap the response to POJO am I creating a performance hole?

In other words using ObjectMapper to dynamically map the response is better / faster way over using pre-defined POJOs?

Please Note, my backend api response object is static and the fields will not change.

Thanks in advance for your help.

来源:https://stackoverflow.com/questions/57767273/invoking-rest-api-using-spring-resttemplate-with-json-response-as-pojo-will-degr

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!