Spring Boot - szablon odpoczynku
Szablon REST służy do tworzenia aplikacji korzystających z usług WWW zgodnych z REST. Możesz użyćexchange()metoda korzystania z usług internetowych dla wszystkich metod HTTP. Kod podany poniżej pokazuje, jak utworzyć szablon Bean for Rest, aby automatycznie połączyć obiekt Rest Template.
package com.tutorialspoint.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
DOSTAĆ
Consuming the GET API by using RestTemplate - exchange() method
Przyjmij ten adres URL http://localhost:8080/products zwraca następujący kod JSON i zamierzamy korzystać z tej odpowiedzi interfejsu API przy użyciu szablonu Rest przy użyciu następującego kodu -
[
{
"id": "1",
"name": "Honey"
},
{
"id": "2",
"name": "Almond"
}
]
Będziesz musiał postępować zgodnie z podanymi punktami, aby korzystać z API -
- Autowired the Rest Template Object.
- Użyj HttpHeaders, aby ustawić nagłówki żądań.
- Użyj HttpEntity, aby zawinąć obiekt żądania.
- Podaj adres URL, HttpMethod i typ zwrotu dla metody Exchange ().
@RestController
public class ConsumeWebService {
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/template/products")
public String getProductList() {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity <String> entity = new HttpEntity<String>(headers);
return restTemplate.exchange("
http://localhost:8080/products", HttpMethod.GET, entity, String.class).getBody();
}
}
POCZTA
Consuming POST API by using RestTemplate - exchange() method
Przyjmij ten adres URL http://localhost:8080/products zwraca odpowiedź pokazaną poniżej, będziemy używać tej odpowiedzi API przy użyciu szablonu Rest.
Kod podany poniżej to treść żądania -
{
"id":"3",
"name":"Ginger"
}
Kod podany poniżej to treść odpowiedzi -
Product is created successfully
Będziesz musiał postępować zgodnie z poniższymi punktami, aby korzystać z API -
Autowired the Rest Template Object.
Użyj HttpHeaders, aby ustawić nagłówki żądań.
Użyj HttpEntity, aby zawinąć obiekt żądania. Tutaj zawijamy obiekt Product, aby wysłać go do treści żądania.
Podaj adres URL, HttpMethod i typ zwrotu dla metody exchange ().
@RestController
public class ConsumeWebService {
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/template/products", method = RequestMethod.POST)
public String createProducts(@RequestBody Product product) {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<Product> entity = new HttpEntity<Product>(product,headers);
return restTemplate.exchange(
"http://localhost:8080/products", HttpMethod.POST, entity, String.class).getBody();
}
}
POŁOŻYĆ
Consuming PUT API by using RestTemplate - exchange() method
Przyjmij ten adres URL http://localhost:8080/products/3 zwraca poniższą odpowiedź i będziemy używać tej odpowiedzi API przy użyciu szablonu Rest.
Kod podany poniżej to treść żądania -
{
"name":"Indian Ginger"
}
Kod podany poniżej to treść odpowiedzi -
Product is updated successfully
Będziesz musiał postępować zgodnie z poniższymi punktami, aby korzystać z API -
Autowired the Rest Template Object.
Użyj HttpHeaders, aby ustawić nagłówki żądań.
Użyj HttpEntity, aby zawinąć obiekt żądania. Tutaj zawijamy obiekt Product, aby wysłać go do treści żądania.
Podaj adres URL, HttpMethod i typ zwrotu dla metody exchange ().
@RestController
public class ConsumeWebService {
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/template/products/{id}", method = RequestMethod.PUT)
public String updateProduct(@PathVariable("id") String id, @RequestBody Product product) {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<Product> entity = new HttpEntity<Product>(product,headers);
return restTemplate.exchange(
"http://localhost:8080/products/"+id, HttpMethod.PUT, entity, String.class).getBody();
}
}
USUNĄĆ
Consuming DELETE API by using RestTemplate - exchange() method
Przyjmij ten adres URL http://localhost:8080/products/3 zwraca odpowiedź podaną poniżej i będziemy używać tej odpowiedzi API przy użyciu szablonu Rest.
Ten wiersz kodu pokazany poniżej to treść odpowiedzi -
Product is deleted successfully
Aby korzystać z interfejsu API, musisz postępować zgodnie z poniższymi punktami -
Autowired the Rest Template Object.
Użyj HttpHeaders, aby ustawić nagłówki żądań.
Użyj HttpEntity, aby zawinąć obiekt żądania.
Podaj adres URL, HttpMethod i typ zwrotu dla metody exchange ().
@RestController
public class ConsumeWebService {
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/template/products/{id}", method = RequestMethod.DELETE)
public String deleteProduct(@PathVariable("id") String id) {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<Product> entity = new HttpEntity<Product>(headers);
return restTemplate.exchange(
"http://localhost:8080/products/"+id, HttpMethod.DELETE, entity, String.class).getBody();
}
}
Pełny plik klasy Rest Template Controller znajduje się poniżej -
package com.tutorialspoint.demo.controller;
import java.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import com.tutorialspoint.demo.model.Product;
@RestController
public class ConsumeWebService {
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/template/products")
public String getProductList() {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<String> entity = new HttpEntity<String>(headers);
return restTemplate.exchange(
"http://localhost:8080/products", HttpMethod.GET, entity, String.class).getBody();
}
@RequestMapping(value = "/template/products", method = RequestMethod.POST)
public String createProducts(@RequestBody Product product) {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<Product> entity = new HttpEntity<Product>(product,headers);
return restTemplate.exchange(
"http://localhost:8080/products", HttpMethod.POST, entity, String.class).getBody();
}
@RequestMapping(value = "/template/products/{id}", method = RequestMethod.PUT)
public String updateProduct(@PathVariable("id") String id, @RequestBody Product product) {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<Product> entity = new HttpEntity<Product>(product,headers);
return restTemplate.exchange(
"http://localhost:8080/products/"+id, HttpMethod.PUT, entity, String.class).getBody();
}
@RequestMapping(value = "/template/products/{id}", method = RequestMethod.DELETE)
public String deleteProduct(@PathVariable("id") String id) {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<Product> entity = new HttpEntity<Product>(headers);
return restTemplate.exchange(
"http://localhost:8080/products/"+id, HttpMethod.DELETE, entity, String.class).getBody();
}
}
Kod dla Spring Boot Application Class - DemoApplication.java jest podany poniżej -
package com.tutorialspoint.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Kod kompilacji Mavena - pom.xml jest podany poniżej -
<?xml version = "1.0" encoding = "UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tutorialspoint</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Kod dla Gradle Build - build.gradle jest podany poniżej -
buildscript {
ext {
springBootVersion = '1.5.8.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
group = 'com.tutorialspoint'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
Możesz utworzyć wykonywalny plik JAR i uruchomić aplikację Spring Boot za pomocą następujących poleceń Maven lub Gradle -
W przypadku Mavena możesz użyć polecenia podanego poniżej -
mvn clean install
Po „BUILD SUCCESS” można znaleźć plik JAR w katalogu docelowym.
W przypadku Gradle możesz użyć polecenia pokazanego poniżej -
gradle clean build
Po komunikacie „BUILD SUCCESSFUL” można znaleźć plik JAR w katalogu build / libs.
Teraz uruchom plik JAR za pomocą następującego polecenia -
java –jar <JARFILE>
Teraz aplikacja została uruchomiona na porcie Tomcat 8080.
Teraz naciśnij poniższy adres URL w aplikacji POSTMAN i zobaczysz wynik.
Pobierz produkty według szablonu odpoczynku - http://localhost:8080/template/products
Utwórz produkty POST - http://localhost:8080/template/products
Zaktualizuj PUT produktu - http://localhost:8080/template/products/3
Usuń produkt - http://localhost:8080/template/products/3