Spring Boot - Template Istirahat
Template Istirahat digunakan untuk membuat aplikasi yang menggunakan Layanan Web RESTful. Anda bisa menggunakanexchange()metode untuk menggunakan layanan web untuk semua metode HTTP. Kode yang diberikan di bawah ini menunjukkan bagaimana membuat Bean for Rest Template ke auto wiring objek 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();
}
}
DAPATKAN
Consuming the GET API by using RestTemplate - exchange() method
Asumsikan URL ini http://localhost:8080/products mengembalikan JSON berikut dan kami akan menggunakan respons API ini dengan menggunakan Template Istirahat menggunakan kode berikut -
[
{
"id": "1",
"name": "Honey"
},
{
"id": "2",
"name": "Almond"
}
]
Anda harus mengikuti poin yang diberikan untuk menggunakan API -
- Autowired Objek Template Istirahat.
- Gunakan HttpHeaders untuk mengatur Header Permintaan.
- Gunakan HttpEntity untuk membungkus objek permintaan.
- Berikan URL, HttpMethod, dan Return type untuk metode 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();
}
}
POS
Consuming POST API by using RestTemplate - exchange() method
Asumsikan URL ini http://localhost:8080/products mengembalikan respons yang ditunjukkan di bawah ini, kita akan menggunakan respons API ini dengan menggunakan Template Istirahat.
Kode yang diberikan di bawah ini adalah Request body -
{
"id":"3",
"name":"Ginger"
}
Kode yang diberikan di bawah ini adalah Badan Respon -
Product is created successfully
Anda harus mengikuti poin yang diberikan di bawah ini untuk menggunakan API -
Autowired Objek Template Istirahat.
Gunakan HttpHeaders untuk mengatur Header Permintaan.
Gunakan HttpEntity untuk membungkus objek permintaan. Di sini, kami membungkus objek Produk untuk mengirimkannya ke badan permintaan.
Berikan URL, HttpMethod, dan jenis Return untuk metode 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();
}
}
TARUH
Consuming PUT API by using RestTemplate - exchange() method
Asumsikan URL ini http://localhost:8080/products/3 mengembalikan respons di bawah ini dan kami akan menggunakan respons API ini dengan menggunakan Template Istirahat.
Kode yang diberikan di bawah ini adalah Request body -
{
"name":"Indian Ginger"
}
Kode yang diberikan di bawah ini adalah Badan Respon -
Product is updated successfully
Anda harus mengikuti poin yang diberikan di bawah ini untuk menggunakan API -
Autowired Objek Template Istirahat.
Gunakan HttpHeaders untuk mengatur Header Permintaan.
Gunakan HttpEntity untuk membungkus objek permintaan. Di sini, kami membungkus objek Produk untuk mengirimkannya ke badan permintaan.
Berikan URL, HttpMethod, dan jenis Return untuk metode 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();
}
}
MENGHAPUS
Consuming DELETE API by using RestTemplate - exchange() method
Asumsikan URL ini http://localhost:8080/products/3 mengembalikan respons yang diberikan di bawah ini dan kami akan menggunakan respons API ini dengan menggunakan Template Istirahat.
Baris kode yang ditunjukkan di bawah ini adalah badan Respon -
Product is deleted successfully
Anda harus mengikuti poin yang ditunjukkan di bawah ini untuk menggunakan API -
Autowired Objek Template Istirahat.
Gunakan HttpHeaders untuk mengatur Header Permintaan.
Gunakan HttpEntity untuk membungkus objek permintaan.
Berikan URL, HttpMethod, dan jenis Return untuk metode 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();
}
}
File kelas Rest Template Controller lengkap diberikan di bawah ini -
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();
}
}
Kode untuk Kelas Aplikasi Spring Boot - DemoApplication.java diberikan di bawah ini -
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);
}
}
Kode untuk Maven build - pom.xml diberikan di bawah ini -
<?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>
Kode untuk Gradle Build - build.gradle diberikan di bawah ini -
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')
}
Anda dapat membuat file JAR yang dapat dieksekusi, dan menjalankan aplikasi Spring Boot dengan menggunakan perintah Maven atau Gradle berikut -
Untuk Maven, Anda dapat menggunakan perintah yang diberikan di bawah ini -
mvn clean install
Setelah “BUILD SUCCESS”, Anda dapat menemukan file JAR di bawah direktori target.
Untuk Gradle, Anda dapat menggunakan perintah yang ditunjukkan di bawah ini -
gradle clean build
Setelah "BUILD SUCCESSFUL", Anda dapat menemukan file JAR di bawah direktori build / libs.
Sekarang, jalankan file JAR dengan menggunakan perintah berikut -
java –jar <JARFILE>
Sekarang, aplikasi telah dimulai pada port Tomcat 8080.
Sekarang tekan URL di bawah ini dalam aplikasi POSTMAN dan Anda dapat melihat hasilnya.
DAPATKAN Produk dengan Template Istirahat - http://localhost:8080/template/products
Buat Produk POST - http://localhost:8080/template/products
Perbarui PUT Produk - http://localhost:8080/template/products/3
Hapus Produk - http://localhost:8080/template/products/3