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.
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 !!