Hallo zusammen,
habe das Problem, dass mein Response-Body immer null ist 🙁 Irgendwas mapped nicht. Ich hoffe jemand kennt sich mit SpringBoot aus und Resttemplate. Vermutlich hab ich bei den Annotationen was zerhauen :/
Edit: hatte die Annotationen auch über den Getter-Methoden, half auch nichts
Folgendes holt die Daten (mit String kommt da auch was)
und hier mein ApiResponse-Objekt:
und das Products-Objekt mit einer Liste an "Product"-Objekten
Und das XML was als Response kommt:
in der pom.xml hab ich :
habe das Problem, dass mein Response-Body immer null ist 🙁 Irgendwas mapped nicht. Ich hoffe jemand kennt sich mit SpringBoot aus und Resttemplate. Vermutlich hab ich bei den Annotationen was zerhauen :/
Edit: hatte die Annotationen auch über den Getter-Methoden, half auch nichts
Folgendes holt die Daten (mit String kommt da auch was)
Code:
private ApiResponse callExternalApi(String kundenNummer, String password) {
String url = "https://www.domain.com/xmlapi/api.php?";
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("cid", kundenNummer)
.queryParam("auth", password);
System.out.println(builder.toUriString());
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_XML));
headers.setContentType(MediaType.TEXT_XML);
RestTemplate restTemplate = new RestTemplate();
HttpEntity<String> entity = new HttpEntity<>(headers);
ResponseEntity<ApiResponse> response = restTemplate.exchange(builder.toUriString(), HttpMethod.GET, entity, ApiResponse.class);
return response.getBody();
}
und hier mein ApiResponse-Objekt:
Code:
@XmlRootElement(name = "API_RESPONSE")
public class ApiResponse {
@XmlElement(name = "PRODUCTS")
private Products products;
//Getter, Setter, No-Arg-Constructor und Arg-constructor
}
}
und das Products-Objekt mit einer Liste an "Product"-Objekten
Code:
public class Products {
@XmlElement(name = "PRODUCT")
private List<Product> product;
//Getter, Setter, Konstruktor
}
}
Und das XML was als Response kommt:
XML:
<API_RESPONSE>
<PRODUCTS>
<PRODUCT>
// weitere Werte
</PRODUCT>
</PRODUCTS>
<API_RESPONSE>
in der pom.xml hab ich :
XML:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.8</version>
</dependency>
Zuletzt bearbeitet: