na het leren bouwen van Spring REST API voor XML representatie en JSON representatie, laten we leren Spring REST client te bouwen met behulp van de Spring RestTemplate om de API ‘ s te consumeren die we in gekoppelde voorbeelden hebben geschreven.
WebClient
te gebruiken die efficiënte ondersteuning biedt voor zowel sync -, async-als streaming-scenario ‘ s. RestTemplate
wordt in de toekomstige versies verouderd.,Spring RestTemplate class
toegang tot de REST API ‘ s in een Spring applicatie draait om het gebruik van de Spring RestTemplate class. DeRestTemplate
klasse is ontworpen volgens dezelfde principes als de vele andere Spring *Template
klassen (bijvoorbeeld JdbcTemplate
, JmsTemplate
), waardoor een vereenvoudigde benadering wordt geboden met standaardgedrag voor het uitvoeren van complexe taken.
gegeven dat de klasse RestTemplate
een synchrone client is die is ontworpen om RUSTDIENSTEN aan te roepen., Het zou geen verrassing moeten zijn dat de primaire methoden nauw verbonden zijn met de onderbouwing van REST, die de methoden van het HTTP-protocol HEAD, GET, POST, PUT, DELETE en opties zijn.
Building RestTemplate Bean
onderstaande voorbeelden zijn enkele voorbeelden om RestTemplate
bean aan te maken in de toepassing. We kijken alleen naar zeer eenvoudige bonendefinities. Voor uitgebreide configuratie opties, verwijzen wij u naar RestTemplate configuratie met HttpClient.
2.1. RestTemplateBuilder
gebruiken 2.2. 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. Inspuiten RestTemplate bean
om de RestTemplate
bean te injecteren, gebruik de bekende @Autowired
annotatie. Als u meerdere bonen van het type RestTemplate
met verschillende configuraties hebt, gebruik dan ook de @Qualifier
annotatie.
@Autowiredprivate RestTemplate restTemplate;
Spring RestTemplate-HTTP GET voorbeeld
beschikbare methoden zijn:
- getForObject(url, classType) – haal een representatie op door een GET uit te voeren op de URL., Het antwoord (indien van toepassing) wordt niet op het gegeven class type aangeroepen en geretourneerd.
- getForEntity (url, responseType) – haal een representatie op als Responseit door een GET op de URL te doen.
- exchange (requestEntity, responseType) – voer de opgegeven
RequestEntity
uit en retourneer het antwoord als ResponseEntity. - uitvoeren (url, httpmethod, requestCallback, responseExtractor) – voer de httpMethod uit naar de gegeven URI-sjabloon, bereid het verzoek voor met de RequestCallback en lees het antwoord met een ResponseExtractor.
3.1., HTTP GET REST API ‘ s
3.2. Spring RestTemplate voorbeeld om REST API
te consumeren In het gegeven voorbeeld halen we het API-antwoord op in stringvorm. We moeten ObjectMapper
gebruiken om het te ontleden naar de POJO voordat we het gebruiken.
deze methode is handig als we een niet-parseerbare reactie van de server krijgen, en we hebben geen controle om het op de server te laten repareren. Hier kunnen we het antwoord krijgen als String
, en een aangepaste parser of stringvervangingsfuncties gebruiken voordat we het antwoord gebruiken.
3.3., Spring RestTemplate voorbeeld om API-respons te consumeren in POJO
In het gegeven voorbeeld halen we de API-respons direct op in het domeinobject.
met behulp van getForObject() methode
met behulp van getforrentity () methode
3.4. HTTP-Headers verzenden met RestTemplate
3.5. URL-Parameters verzenden met RestTemplate
Spring RestTemplate – HTTP POST voorbeeld
beschikbare methoden zijn:
- postForObject(url, request, classType) – Post het gegeven object naar de URL, en geeft de representatie terug die in het antwoord gevonden is als gegeven class type.,
- postForEntity (url, request, responseType) – Post het opgegeven object op de URL en geeft het antwoord terug als Responseit.
- postForLocation (url, request, responseType) – Post het opgegeven object naar de URL, en geeft de waarde van de
Location
header terug. - exchange(url, requestEntity, responseType)
- uitvoeren (url, httpMethod, requestCallback, responseExtractor)
4.1. HTTP POST REST API
de POST API, die we in dit voorbeeld zullen gebruiken.
4.2., Spring RestTemplate voorbeeld om POST API
te gebruiken Spring REST client met RestTemplate
om toegang te krijgen tot HTTP POST api verzoeken.
Spring RestTemplate-HTTP PUT Method voorbeeld
beschikbare methoden zijn:
- put(url, request) – zet het opgegeven verzoek object op URL.
5.1. HTTP PUT REST API
5.2. Spring RestTemplate voorbeeld om PUT API
Spring RestTemplate-HTTP DELETE Method voorbeeld
beschikbare methoden zijn:
- delete(url) – verwijdert de bron op de opgegeven URL.
6.1., HTTP delete REST API
6.2. Spring RestTemplate voorbeeld om te consumeren DELETE API
voel je vrij om bovenstaande Spring RestTemplate voorbeelden te kopiëren en te wijzigen voor het bouwen van de Spring REST API consument in uw Spring WebMVC applicatie.,
RestTemplate Voorbeelden
de Lente RestTemplate basic-verificatie voorbeeld
de Lente RestTemplate time-out configuratie-voorbeeld
de Lente RestTemplateBuilder Voorbeeld
de Lente RestTemplate – HttpClient configuratie-voorbeeld
de Lente Boot RestTemplate KRIJGEN Voorbeeld
de Lente Boot RestTemplate POST-Voorbeeld
de Lente boot JUnit voorbeeld met RestTemplate
de Lente boot TestRestTemplate POST met kop-voorbeeld
de Lente ClientHttpRequestInterceptor met RestTemplate
Gelukkig Leren !!