Site Overlay

Spring RestTemplate (Deutsch)

Nachdem wir gelernt haben, die Spring REST API für die XML-Darstellung und die JSON-Darstellung zu erstellen, lernen wir, den Spring REST Client mit Spring RestTemplate zu erstellen, um die APIs zu verwenden, die wir in verknüpften Beispielen geschrieben haben.

Hinweis: Spring docs empfehlen die Verwendung der nicht blockierenden, reaktiven WebClient, die eine effiziente Unterstützung sowohl für Synchronisierungs-als auch für asynchrone und Streaming-Szenarien bietet. RestTemplate wird in zukünftigen Versionen veraltet sein.,

Spring RestTemplate class

Der Zugriff auf die REST-APIs in einer Spring-Anwendung dreht sich um die Verwendung der Spring RestTemplate-Klasse. DieRestTemplate – Klasse basiert auf den gleichen Prinzipien wie die vielen anderen Spring *Template – Klassen (z. B. JdbcTemplate, JmsTemplate) und bietet einen vereinfachten Ansatz mit Standardverhalten für die Ausführung komplexer Aufgaben.

Vorausgesetzt, dieRestTemplate – Klasse ist ein synchroner Client, der zum Aufrufen von REST-Diensten entwickelt wurde., Es sollte nicht überraschen, dass seine primären Methoden eng mit den Grundlagen von REST verbunden sind, nämlich den Methoden HEAD, GET, POST, PUT, DELETE und OPTIONS des HTTP-Protokolls.

RestTemplate Bean erstellen

Die unten angegebenen Beispiele sind einige Beispiele zum Erstellen von RestTemplate Bean in der Anwendung. Wir betrachten nur sehr einfache Bohnendefinitionen. Ausführliche Konfigurationsoptionen finden Sie unter RestTemplate-Konfiguration mit HttpClient.

2.1. Mit RestTemplateBuilder

2.2. Verwenden von SimpleClientHttpRequestFactory

2.3., Apache-HTTPClient

@AutowiredCloseableHttpClient httpClient;@Beanpublic RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory()); return restTemplate;}@Beanpublic HttpComponentsClientHttpRequestFactory clientHttpRequestFactory() { HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(); clientHttpRequestFactory.setHttpClient(httpClient); return clientHttpRequestFactory;}

2.4. Injizieren von RestTemplate Bean

Um die RestTemplate Bean zu injizieren, verwenden Sie die bekannte@Autowired Annotation. Wenn Sie mehrere Beans vom Typ RestTemplate mit unterschiedlichen Konfigurationen haben, verwenden Sie auch die Anmerkung @Qualifier.

@Autowiredprivate RestTemplate restTemplate;

Spring RestTemplate – HTTP GET Example

Verfügbare Methoden sind:

  • getForObject(url, ClassType) – Rufen Sie eine Darstellung ab, indem Sie ein GET für die URL ausführen., Die Antwort (falls vorhanden) wird nicht an einen bestimmten Klassentyp gesendet und zurückgegeben.
  • getForEntity (url, responseType) – Rufen Sie eine Darstellung als ResponseEntity ab, indem Sie ein GET für die URL ausführen.
  • exchange (requestEntity, responseType) – Führen Sie die angegebene RequestEntity aus und geben Sie die Antwort als ResponseEntity zurück.
  • execute (url, HttpMethod, requestCallback, responseExtractor) – Führen Sie die HttpMethod für die angegebene URI-Vorlage aus, bereiten Sie die Anforderung mit dem RequestCallback vor und lesen Sie die Antwort mit einem ResponseExtractor.

3.1., HTTP-GET-REST-APIs

3.2. Spring RestTemplate-Beispiel zum Konsumieren der REST-API

Im angegebenen Beispiel rufen wir die API-Antwort in Zeichenfolgenform ab. Wir müssen ObjectMapper, um es vor der Verwendung in das POJO zu analysieren.

Diese Methode ist nützlich, wenn wir eine unparsable Antwort vom Server erhalten, und wir haben keine Kontrolle, sie auf der Serverseite zu beheben. Hier können wir die Antwort als String und vor der Verwendung der Antwort einen benutzerdefinierten Parser oder Zeichenfolgenersatzfunktionen verwenden.

3.3., Spring RestTemplate-Beispiel, um die API-Antwort in POJO

zu verwenden Im angegebenen Beispiel rufen wir die API-Antwort direkt in das Domänenobjekt ab.

Mit getForObject() Methode

Mit getForEntity () Methode

3.4. Senden von HTTP-Headern mit RestTemplate

3.5. Senden von URL-Parametern mit RestTemplate

Spring RestTemplate-HTTP POST Example

Verfügbare Methoden sind:

  • postForObject (url, request, ClassType) – Sendet das angegebene Objekt an die URL und gibt die in der Antwort gefundene Darstellung als angegebenen Klassentyp zurück.,
  • postForEntity (url, request, responseType) – Sendet das angegebene Objekt an die URL und gibt die Antwort als ResponseEntity zurück.
  • postForLocation (url, request, responseType) – Sendet das angegebene Objekt an die URL und gibt den Wert des Headers Location zurück.
  • exchange(url, requestEntity, responseType)
  • execute(url, httpMethod, requestCallback, responseExtractor)

4.1. HTTP POST REST API

Die POST API, werden wir in diesem Beispiel verbrauchen.

4.2., Spring RestTemplate-Beispiel zum Konsumieren der POST-API

Spring REST-Client mit RestTemplate für den Zugriff auf HTTP-POST-API-Anforderungen.

Spring RestTemplate – HTTP PUT Methodenbeispiel

Verfügbare Methoden sind:

  • put (url, request) – Setzt das angegebene request Objekt auf URL.

5.1. HTTP PUT-REST-API

5.2. Spring RestTemplate Beispiel zum Konsumieren von PUT API

Spring RestTemplate-HTTP DELETE Methodenbeispiel

Verfügbare Methoden sind:

  • delete (url) – löscht die Ressource unter der angegebenen URL.

6.1., HTTP LÖSCHEN Sie REST-API

6.2. Spring RestTemplate-Beispiel zum Erstellen der DELETE-API

Kopieren und ändern Sie die obigen Spring RestTemplate-Beispiele zum Erstellen des Spring REST API-Consumers in Ihrer Spring WebMVC-Anwendung.,

RestTemplate Beispiele

Spring RestTemplate grundlegende Authentifizierung Beispiel
Feder RestTemplate timeout-Konfiguration, Beispiel
Feder RestTemplateBuilder Beispiel
Feder RestTemplate – HttpClient-Konfiguration, Beispiel
Spring-Boot-RestTemplate BEKOMMEN, Beispiel
Spring-Boot-RestTemplate POST Beispiel
Spring-boot-JUnit-Beispiel mit RestTemplate
Spring-boot-TestRestTemplate POST-Header-Beispiel
Feder ClientHttpRequestInterceptor mit RestTemplate

Happy Learning !!

War dieser Beitrag hilfreich?

Teilen Sie uns mit, ob Ihnen der Beitrag gefallen hat., Nur so können wir uns verbessern.
Ja
Nein

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.