Spring Boot - Mengaktifkan Swagger2
Swagger2 adalah proyek open source yang digunakan untuk menghasilkan dokumen REST API untuk layanan web RESTful. Ini menyediakan antarmuka pengguna untuk mengakses layanan web RESTful kami melalui browser web.
Untuk mengaktifkan Swagger2 di aplikasi Spring Boot, Anda perlu menambahkan dependensi berikut di file konfigurasi build kami.
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
Untuk pengguna Gradle, tambahkan dependensi berikut di file build.gradle Anda.
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.7.0'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.7.0'
Sekarang, tambahkan anotasi @ EnableSwagger2 di aplikasi Spring Boot utama Anda. Anotasi @ EnableSwagger2 digunakan untuk mengaktifkan Swagger2 untuk aplikasi Spring Boot Anda.
Kode untuk aplikasi Spring Boot utama ditunjukkan di bawah ini -
package com.tutorialspoint.swaggerdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@EnableSwagger2
public class SwaggerDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SwaggerDemoApplication.class, args);
}
}
Selanjutnya, buat Docket Bean untuk mengonfigurasi Swagger2 untuk aplikasi Spring Boot Anda. Kita perlu menentukan paket dasar untuk mengonfigurasi REST API untuk Swagger2.
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.tutorialspoint.swaggerdemo")).build();
}
Sekarang, tambahkan kacang ini di file kelas aplikasi Spring Boot utama itu sendiri dan kelas aplikasi Spring Boot utama Anda akan terlihat seperti yang ditunjukkan di bawah ini -
package com.tutorialspoint.swaggerdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@EnableSwagger2
public class SwaggerDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SwaggerDemoApplication.class, args);
}
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.tutorialspoint.swaggerdemo")).build();
}
}
Sekarang, tambahkan dependensi Spring Boot Starter Web di bawah ini di file konfigurasi build Anda untuk menulis REST Endpoints seperti yang ditunjukkan di bawah ini -
Pengguna Maven dapat menambahkan dependensi berikut ke file pom.xml Anda -
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Pengguna Gradle dapat menambahkan dependensi berikut dalam file build.gradle -
compile('org.springframework.boot:spring-boot-starter-web')
Sekarang, kode untuk membangun dua layanan web RESTful sederhana GET dan POST dalam file Rest Controller ditampilkan di sini -
package com.tutorialspoint.swaggerdemo;
import java.util.ArrayList;
import java.util.List;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SwaggerAPIController {
@RequestMapping(value = "/products", method = RequestMethod.GET)
public List<String> getProducts() {
List<String> productsList = new ArrayList<>();
productsList.add("Honey");
productsList.add("Almond");
return productsList;
}
@RequestMapping(value = "/products", method = RequestMethod.POST)
public String createProduct() {
return "Product is saved successfully";
}
}
File konfigurasi build lengkap diberikan di bawah ini -
Maven – pom.xml
<?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>swagger-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>swagger-demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</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>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Gradle – build.gradle
buildscript {
ext {
springBootVersion = '1.5.9.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')
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.7.0'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.7.0'
}
Anda dapat membuat file JAR yang dapat dieksekusi, dan menjalankan aplikasi Spring Boot menggunakan perintah Maven atau Gradle berikut.
Untuk Maven, Anda dapat menggunakan perintah yang ditampilkan di sini -
mvn clean install
Setelah “BUILD SUCCESS”, Anda dapat menemukan file JAR di bawah direktori target.
Untuk Gradle, Anda dapat menggunakan perintah seperti yang ditunjukkan di sini -
gradle clean build
Setelah "BUILD SUCCESSFUL", Anda dapat menemukan file JAR di bawah direktori build / libs.
Sekarang, jalankan file JAR dengan menggunakan perintah yang ditunjukkan di sini -
java –jar <JARFILE>
Sekarang, aplikasi akan mulai di port Tomcat 8080 seperti yang ditunjukkan -
Sekarang, tekan URL di browser web Anda dan lihat fungsi API Swagger.
http://localhost:8080/swagger-ui.html