it-swarm.com.de

Rufen Sie in Spring-Boot ein anderes Rest-API von meinem Server auf

Ich möchte eine andere Web-API aus meinem Backend auf eine bestimmte Anfrage des Benutzers aufrufen. Beispiel: Ich möchte google FCM send message api aufrufen, um eine Nachricht an einen bestimmten Benutzer zu einem Ereignis zu senden. 

ist Retrofit eine Methode, um dies zu erreichen? oder wenn nicht wie kann ich das machen?

28
Kenji

Diese Website enthält einige schöne Beispiele für die Verwendung von Spring's RestTemplate. Hier ein Codebeispiel, wie ein einfaches Objekt erstellt werden kann:

private static void getEmployees()
{
    final String uri = "http://localhost:8080/springrestexample/employees.xml";

    RestTemplate restTemplate = new RestTemplate();
    String result = restTemplate.getForObject(uri, String.class);

    System.out.println(result);
}
41
Torsten N.

Anstelle von String versuchen Sie benutzerdefinierte POJO-Objektdetails als Ausgabe zu erhalten, indem Sie eine andere API/URI aufrufen. Versuchen Sie es mit dieser Lösung. Ich hoffe, es wird klar und hilfreich für die Verwendung von RestTemplate sein, auch

In Spring Boot müssen wir zuerst Bean für RestTemplate unter der @Configuration annotated-Klasse erstellen. Sie können sogar eine separate Klasse schreiben und mit @Configuration Anmerkungen hinzufügen (siehe unten).

@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
       return builder.build();
    }
}

Dann müssen Sie RestTemplate mit @Autowired oder @Injected unter Ihrem Dienst/Controller definieren, wo immer Sie versuchen, RestTemplate zu verwenden. Verwenden Sie den folgenden Code,

@Autowired
private RestTemplate restTemplate;

Nun wird der Teil des Aufrufs einer anderen API aus meiner Anwendung mit dem oben erstellten RestTemplate angezeigt. Dafür können wir mehrere Methoden verwenden wie execute () , getForEntity () , getForObject () und usw. Hier platziere ich den Code mit dem Beispiel von execute (). Ich habe sogar zwei andere ausprobiert, ich hatte ein Problem mit der Konvertierung zurückgegebener LinkedHashMap in ein erwartetes POJO-Objekt. Die unten stehende Methode () () (Execute) löste mein Problem.

ResponseEntity<List<POJO>> responseEntity = restTemplate.exchange(URL, HttpMethod.GET, null, new ParameterizedTypeReference<List<POJO>>() {
});
List<POJO> pojoObjList = responseEntity.getBody();

Glückliche Kodierung :)

0
Nallamachu