Як налаштувати 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

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

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

    Dependency Injection в Java

    Dependency Injection (впровадження залежностей) — один з фундаментальних патернів проектування в сучасній Java-розробці. Цей принцип допомагає створювати гнучкі, тестовані та підтримувані додатки. Давайте розберемося, що це таке і як правильно його застосовувати. Що таке Dependency Injection? Dependency Injection — це техніка, при якій об’єкт отримує свої залежності ззовні, а не створює їх самостійно. Замість того, щоб клас сам інстанціював потрібні йому об’єкти, вони передаються йому через конструктор, setter-методи…

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

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

    Цікаве

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

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

    Java Collections Framework: List, Set чи Map?

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

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

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

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

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

    Agent Skills: Що це таке і чому про це варто знати

    • Автор javaadmin
    • 13 Квітня, 2026
    • 235 views
    Agent Skills: Що це таке і чому про це варто знати

    Dependency Injection в Java

    • Автор javaadmin
    • 9 Грудня, 2025
    • 408 views
    Dependency Injection в Java