Add Swagger documentation

This commit is contained in:
2023-05-15 14:53:59 +02:00
parent fcb6bb063a
commit 66c349f630
3 changed files with 15 additions and 1 deletions

View File

@@ -16,6 +16,7 @@
<properties> <properties>
<java.version>17</java.version> <java.version>17</java.version>
<modelmapper.version>3.1.1</modelmapper.version> <modelmapper.version>3.1.1</modelmapper.version>
<springdoc-openapi.version>2.1.0</springdoc-openapi.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
@@ -39,6 +40,11 @@
<artifactId>modelmapper</artifactId> <artifactId>modelmapper</artifactId>
<version>${modelmapper.version}</version> <version>${modelmapper.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${springdoc-openapi.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

View File

@@ -1,5 +1,7 @@
package net.kapcake.bankingservice.controllers; package net.kapcake.bankingservice.controllers;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
@@ -27,6 +29,8 @@ public class AuthController {
this.userService = userService; this.userService = userService;
} }
@SecurityRequirement(name = "basic")
@Operation(summary = "Login using basic authentication to get a session cookie")
@PostMapping("/login") @PostMapping("/login")
public void login(HttpServletRequest request) { public void login(HttpServletRequest request) {
Authentication auth = (Authentication) request.getUserPrincipal(); Authentication auth = (Authentication) request.getUserPrincipal();

View File

@@ -1,5 +1,6 @@
package net.kapcake.bankingservice.controllers; package net.kapcake.bankingservice.controllers;
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import net.kapcake.bankingservice.exceptions.ValidationException; import net.kapcake.bankingservice.exceptions.ValidationException;
import net.kapcake.bankingservice.model.dtos.BankAccountDTO; import net.kapcake.bankingservice.model.dtos.BankAccountDTO;
@@ -43,7 +44,10 @@ public class BankingServiceController {
} }
@GetMapping("/payments") @GetMapping("/payments")
public List<PaymentDTO> getPayments(@AuthenticationPrincipal UserDetailsImpl authenticatedUser, @RequestBody(required = false) @Valid PaymentFilter paymentFilter, BindingResult bindingResult) { public List<PaymentDTO> getPayments(@AuthenticationPrincipal UserDetailsImpl authenticatedUser,
@Parameter(description = "Filter to be applied")
@RequestBody(required = false) @Valid PaymentFilter paymentFilter,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
String errorString = getErrorString(bindingResult); String errorString = getErrorString(bindingResult);
throw new ValidationException("Payment filter is invalid: " + errorString); throw new ValidationException("Payment filter is invalid: " + errorString);