Як налаштувати Swagger-ui в Spring Boot

Swagger — це набір інструментів для проектування, створення, документування та використання RESTful веб-сервісів. Цей інструментарій дозволяє розробникам та архітекторам програмного забезпечення легко керувати всім життєвим циклом API, включаючи його дизайн, тестування, документування та забезпечення сумісності.

Переваги використання Swagger:

  1. Документація API “як код”: Swagger дозволяє документувати API у форматі, який може бути як читабельним людиною, так і машиною. Це означає, що документація може бути автоматично генерована та оновлюватися разом з API.
  2. Інтерактивна документація: Swagger забезпечує користувачам можливість взаємодіяти з API прямо через документацію за допомогою Swagger UI. Це дозволяє користувачам розуміти можливості API швидше та легше інтегрувати з ним.
  3. Спільна робота та генерування клієнтського коду: Swagger спрощує співпрацю між розробниками у команді та може автоматично генерувати клієнтський код для різних мов програмування.

Як працює Swagger?

Swagger використовує гнучку схему даних у форматі, відомому як OpenAPI Specification (OAS). Ця схема описує API у форматі JSON або YAML, дозволяючи програмам розуміти та взаємодіяти з API без необхідності доступу до коду сервера. Специфікація OpenAPI містить всю необхідну інформацію про API, включаючи доступні операції, параметри вхідних даних, формати вихідних даних, можливі помилки тощо.

Swagger UI

Swagger UI — це динамічно генерований веб-інтерфейс для документації API. Цей інтерфейс дозволяє користувачам переглядати документацію та взаємодіяти з API без початкового коду. Swagger UI може бути легко інтегрованим у будь-яку веб-службу.

Ось як ви можете підключити Swagger до Spring Boot та налаштувати сторінку Swagger UI.

Крок 1: Додавання залежностей

Для початку додайте необхідні залежності до вашого pom.xml файлу. Якщо ви використовуєте Maven, то ваш файл pom.xml має виглядати приблизно так:

<dependencies>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
</dependencies>
XML


Якщо ви використовуєте Gradle, додайте таку залежність у файл build.gradle:

gradleimplementation 'io.springfox:springfox-boot-starter:3.0.0'
XML

Крок 2: Конфігурація Java для Swagger

Створіть Java конфігураційний клас, який налаштує Swagger 2 для вашого Spring Boot проекту. Ви можете створити клас конфігурації у своєму пакеті, як показано нижче:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {                                    
    @Bean
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2)  
          .select()                                  
          .apis(RequestHandlerSelectors.basePackage("com.example.yourapp"))              
          .paths(PathSelectors.any())                          
          .build();                                           
    }
}
Java

Вище, RequestHandlerSelectors.basePackage("com.example.yourapp") вказує пакет, де знаходяться ваші контролери, і потрібно замінити “com.example.yourapp” на відповідний пакет вашого проекту.

Крок 3: Доступ до Swagger UI

Після інтеграції і налаштування Swagger, ви можете доступити Swagger UI за адресою:

http://localhost:8080/swagger-ui/
HTML

Замініть localhost:8080 на URL вашого сервера та порт. Swagger UI автоматично завантажить вашу документацію API та надасть інтерактивний інтерфейс для тестування API.

Крок 4: Налаштування Swagger UI

Ви можете налаштувати інформацію, яка відображається у Swagger UI, додавши більше параметрів у метод Docket api(). Наприклад, ви можете вказати інформацію про API, таку як назва, опис, версія, терміни використання, контактну інформацію тощо.

import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;

// В середині методу Docket api()
.apiInfo(new ApiInfo(
    "Назва API", 
    "Опис API", 
    "Версія API", 
    "Терміни використання", 
    new Contact("Ім'я", "URL", "email"), 
    "Ліцензія", "URL Ліцензії", Collections.emptyList()
))
Java

Ці кроки допоможуть вам інтегрувати та налаштувати Swagger для Spring Boot, щоб ви могли легко та ефективно управляти своїм API.

  • javaadmin

    Супер крутий Dev

    Related Posts

    Робота з базами даних у Spring: порівнюємо JDBC, Hibernate та Spring Data JPA

    Робота з базами даних — одна з найважливіших складових практично будь-якого backend-застосунку. Spring пропонує кілька рівнів абстракції для доступу до даних: низькорівневий Spring JDBC, потужний ORM-фреймворк Hibernate та зручну надбудову Spring Data JPA. Розглянемо, чим вони відрізняються, коли варто обирати кожен з них. 1. Spring JDBC Spring JDBC — це тонка обгортка над стандартним java.sql, яка усуває бойлерплейт-код: ручне відкриття/закриття з’єднань, обробку виключень, керування транзакціями. Основний інструмент — клас JdbcTemplate: Переваги: Недоліки: Spring JDBC…

    Dependency Injection у Spring: пояснюємо на пальцях

    Коли програміст-початківець вперше відкриває документацію до Spring Framework, на нього одразу висипається купа грізних термінів: Dependency Injection (DI), Inversion of Control (IoC), ApplicationContext, Bean. Здається, що це вища математика. Ми вже розглядали DI в минулих матеріалах але цю дуже не просту тему краще розібрати по болтиках для повного розуміння. Насправді за цими розумними словами ховається надзвичайно проста та красива ідея. Це історія про те, як перестати збирати складні речі вручну й довірити…

    Залишити відповідь

    Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

    Цікаве

    Garbage Collection: Як працює сміттевоз в Java

    • Автор javaadmin
    • 13 Серпня, 2026
    • 123 views
    Garbage Collection: Як працює сміттевоз в Java

    Робота з базами даних у Spring: порівнюємо JDBC, Hibernate та Spring Data JPA

    • Автор javaadmin
    • 6 Серпня, 2026
    • 133 views
    Робота з базами даних у Spring: порівнюємо JDBC, Hibernate та Spring Data JPA

    Dependency Injection у Spring: пояснюємо на пальцях

    • Автор javaadmin
    • 31 Липня, 2026
    • 159 views
    Dependency Injection у Spring: пояснюємо на пальцях

    Java Collections Framework: List, Set чи Map?

    • Автор javaadmin
    • 31 Липня, 2026
    • 151 views
    Java Collections Framework: List, Set чи Map?

    Оптимізуємо це: GraalVM Native Image, Leyden та CRaC

    • Автор javaadmin
    • 17 Липня, 2026
    • 166 views
    Оптимізуємо це: GraalVM Native Image, Leyden та CRaC

    JBang: Як вивчати Java легко

    • Автор javaadmin
    • 12 Травня, 2026
    • 247 views
    JBang: Як вивчати Java легко