2) Swagger в java
Чтобы использовать Swagger UI в Java-проекте, вам нужно создать RESTful API с использованием Spring Boot и интегрировать Swagger для документирования и визуализации вашего API. В этом примере мы создадим простое приложение Spring Boot, которое будет взаимодействовать с API JSONPlaceholder и предоставлять Swagger UI для тестирования. Шаги для создания Java-проекта с Swagger UI Шаг 1: Создание нового Spring Boot проекта
Создайте новый проект Spring Boot:
Вы можете использовать Spring Initializr для создания нового проекта. Выберите следующие параметры:
Project: Maven Project
Language: Java
Spring Boot: (выберите последнюю стабильную версию)
Dependencies: Spring Web, Spring Boot DevTools, Springfox Swagger 2
Скачайте и распакуйте проект.
Шаг 2: Настройка зависимостей
Если вы используете Maven, убедитесь, что в вашем pom.xml добавлены следующие зависимости для Swagger:
xml
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
Шаг 3: Создание REST-контроллера
Создайте контроллер, который будет взаимодействовать с API JSONPlaceholder. Например, создайте класс PostController:
java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.List;
@RestController
public class PostController {
private final String API_URL = "https://jsonplaceholder.typicode.com/posts";
@GetMapping("/posts")
public List<Post> getPosts() {
RestTemplate restTemplate = new RestTemplate();
Post[] posts = restTemplate.getForObject(API_URL, Post[].class);
return List.of(posts);
}
}
Шаг 4: Создание модели Post
Создайте класс модели Post, который будет представлять структуру данных:
java
public class Post {
private int userId;
private int id;
private String title;
private String body;
// Геттеры и сеттеры
public int getUserId() { return userId; }
public void setUserId(int userId) { this.userId = userId; }
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
public String getBody() { return body; }
public void setBody(String body) { this.body = body; }
}
Шаг 5: Настройка Swagger
Создайте класс конфигурации Swagger:
java
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.demo")) // Замените на ваш пакет
.paths(PathSelectors.any())
.build();
}
}
Шаг 6: Запуск приложения
Запустите ваше Spring Boot приложение. Вы можете сделать это из вашей IDE или с помощью команды Maven:
bash
mvn spring-boot:run
После запуска приложения вы сможете получить доступ к Swagger UI по следующему URL:
Code
http://localhost:8080/swagger-ui.html
Шаг 7: Взаимодействие с API через Swagger UI
Откройте браузер и перейдите по адресу http://localhost:8080/swagger-ui.html.
Вы увидите интерфейс Swagger UI, где будет отображен ваш API.
Найдите конечную точку /posts, нажмите на нее, затем нажмите кнопку "Try it out".
Нажмите кнопку "Execute", чтобы отправить GET-запрос к /posts.
Вы увидите ответ от API JSONPlaceholder, включая статус-код и тело ответа.
Заключение
Теперь у вас есть полноценное Spring Boot приложение с интегрированным Swagger UI, которое взаимодействует с API JSONPlaceholder. Вы можете использовать этот подход для создания и документирования своих собственных RESTful API, а также для тестирования их с помощью Swagger UI.