I can't map any values to Profile.class. They are either 0 or null.
When I look for the values in localhost:8080 all the values from Profile object are 0 or null. I am not sure what to do here, please help.
I've tried so many different methods and nothing seems to work. I've tried an exchange, I've tried to map it to the Profile class with getForObject, but nothing has worked.
This is my Rest Controller.
package com.finance.Services;
import com.finance.Model.Profile;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.Collections;
@RestController
@RequestMapping(value="/profile", headers = "Accept=application/json")
public class ProfileService {
@RequestMapping(path="/{stockSymbol}", method=RequestMethod.GET)
public Profile getProfile(@PathVariable("stockSymbol") String stockSymbol) {
String url = ("https://financialmodelingprep.com/api/v3/company/profile/"+ stockSymbol +"?apikey=bc03aa8fb9a9d1a4944287b3cec3dfe1");
RestTemplate restTemplate = new RestTemplate();
HttpHeaders head = new HttpHeaders();
head.setContentType(MediaType.APPLICATION_JSON);
head.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
HttpEntity<Profile> request = new HttpEntity(head);
ResponseEntity<Profile> response = restTemplate.exchange(
url,
HttpMethod.GET,
request,
Profile.class
);
if (response.getStatusCode() == HttpStatus.OK) {
return response.getBody();
} else {
return null;
}
}
}
This is my Profile Class.
package com.finance.Model;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
public class Profile implements Serializable {
private double price;
private double beta;
private int volAvg;
private double mktCap;
private String companyName;
private String industry;
public Profile() {
}
public Profile(double price, double beta, int volAvg, double mktCap, String companyName, String industry) {
this.setPrice(price);
this.setBeta(beta);
this.setVolAvg(volAvg);
this.setMktCap(mktCap);
this.setCompanyName(companyName);
this.setIndustry(industry);
}
public double getPrice() {
return price;
}
@JsonProperty("price")
public void setPrice(double price) {
this.price = price;
}
public double getBeta() {
return beta;
}
@JsonProperty("beta")
public void setBeta(double beta) {
this.beta = beta;
}
public int getVolAvg() {
return volAvg;
}
@JsonProperty("volAvg")
public void setVolAvg(int volAvg) {
this.volAvg = volAvg;
}
public double getMktCap() {
return mktCap;
}
@JsonProperty("mktCap")
public void setMktCap(double mktCap) {
this.mktCap = mktCap;
}
public String getCompanyName() {
return companyName;
}
@JsonProperty("companyName")
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getIndustry() {
return industry;
}
@JsonProperty("industry")
public void setIndustry(String industry) {
this.industry = industry;
}
@Override
public String toString() {
return "Profile{" +
"price=" + price +
", beta=" + beta +
", volAvg=" + volAvg +
", mktCap=" + mktCap +
", companyName='" + companyName + '\'' +
", industry='" + industry + '\'' +
'}';
}
}