
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
В этой статье мы узнаем, как создать документацию API с помощью Swagger на Springboot, а также протестируем все apis с помощью swagger ui. посмотрите на изображение ниже для простого описания того, что мы создадим.
Springboot + Swagger-UI
Swagger-UI home pgeсвяжите проект springboot + Mysql
<!-- swagger open api-->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.10</version>
</dependency># for enable the swagger-ui page (default true) spring.api-docs.enabled=true # for checking the swagger-ui page on link : # http://localhost:8181/swagger-ui/index.html
@Operation(summary="Api save data")
@ApiResponses(value = {
@ApiResponse(responseCode="200", description="Success", content = {@Content(mediaType="application/json")}),
@ApiResponse(responseCode="404", description="Data not found", content = @Content)
})
@PostMapping(value="/save")
public ResponseEntity<Response> save(@RequestBody UserDTO request) {
return userService.save(request);
} @Operation(summary="Api update data")
@ApiResponses(value = {
@ApiResponse(responseCode="200", description="Success", content = {@Content(mediaType="application/json")}),
@ApiResponse(responseCode="404", description="Data not found", content = @Content)
})
@PutMapping(value="/update/{id}")
public ResponseEntity<Response> update(@PathVariable Long id,
@RequestBody UserDTO request) {
return userService.update(id, request);
} @Operation(summary="Api delete data")
@ApiResponses(value = {
@ApiResponse(responseCode="200", description="Success", content = {@Content(mediaType="application/json")}),
@ApiResponse(responseCode="404", description="Data not found", content = @Content)
})
@DeleteMapping(value="/delete/{id}")
public ResponseEntity<Response> delete(@PathVariable Long id) {
return userService.delete(id);
} @Operation(summary="Api delete all data")
@ApiResponses(value = {
@ApiResponse(responseCode="200", description="Success", content = {@Content(mediaType="application/json")}),
@ApiResponse(responseCode="404", description="Data not found", content = @Content)
})
@DeleteMapping(value="/delete/all")
public ResponseEntity<Response> deleteAll() {
return userService.deleteAll();
} @Operation(summary="Api get all data")
@ApiResponses(value = {
@ApiResponse(responseCode="200", description="Success", content = {@Content(mediaType="application/json")}),
@ApiResponse(responseCode="404", description="Data not found", content = @Content)
})@Operation(summary="Api find data by id")
@ApiResponses(value = {
@ApiResponse(responseCode="200", description="Success", content = {@Content(mediaType="application/json")}),
@ApiResponse(responseCode="404", description="Data not found", content = @Content)
})
@GetMapping("/find/{id}")
public ResponseEntity<Response> findById(@PathVariable Long id) {
return userService.findById(id);
}Описания аннотаций:
приложение запущено
Домашняя страница Swagger-UI
аккордеонное меню на UserController
Swagger-UI вводим json тело пользователя для тестирования и выполняем
Swagger-UI ответ тестируемого APIНаконец, мы уже научились создавать документацию API с помощью Swagger на Springboot, на примере CRUD api.
Полный исходный код здесь
Happy Coding & Keep Learning 🚀

20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2026-2027 годах? Или это полная лажа?".

20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.