feat: API documentation UI
This commit is contained in:
parent
cfb61fdaa4
commit
638e6343c9
@ -4,9 +4,12 @@ import io.swagger.v3.oas.models.OpenAPI;
|
|||||||
import io.swagger.v3.oas.models.info.Info;
|
import io.swagger.v3.oas.models.info.Info;
|
||||||
import io.swagger.v3.oas.models.security.SecurityRequirement;
|
import io.swagger.v3.oas.models.security.SecurityRequirement;
|
||||||
import io.swagger.v3.oas.models.security.SecurityScheme;
|
import io.swagger.v3.oas.models.security.SecurityScheme;
|
||||||
|
import io.swagger.v3.oas.models.servers.Server;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class OpenApiConfig {
|
public class OpenApiConfig {
|
||||||
|
|
||||||
@ -17,12 +20,17 @@ public class OpenApiConfig {
|
|||||||
.title("Wesal API")
|
.title("Wesal API")
|
||||||
.description("Social media application API")
|
.description("Social media application API")
|
||||||
.version("1.0.0"))
|
.version("1.0.0"))
|
||||||
|
.servers(List.of(
|
||||||
|
new Server().url("http://localhost:8080").description("Development server"),
|
||||||
|
new Server().url("https://api.wesal.online").description("Production server")
|
||||||
|
))
|
||||||
.addSecurityItem(new SecurityRequirement().addList("Bearer Authentication"))
|
.addSecurityItem(new SecurityRequirement().addList("Bearer Authentication"))
|
||||||
.components(new io.swagger.v3.oas.models.Components()
|
.components(new io.swagger.v3.oas.models.Components()
|
||||||
.addSecuritySchemes("Bearer Authentication",
|
.addSecuritySchemes("Bearer Authentication",
|
||||||
new SecurityScheme()
|
new SecurityScheme()
|
||||||
.type(SecurityScheme.Type.HTTP)
|
.type(SecurityScheme.Type.HTTP)
|
||||||
.scheme("bearer")
|
.scheme("bearer")
|
||||||
.bearerFormat("JWT")));
|
.bearerFormat("JWT")
|
||||||
|
.description("Enter JWT token (without 'Bearer ' prefix)")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -67,7 +67,7 @@ public class SecurityConfig {
|
|||||||
.csrf(csrf -> csrf.disable())
|
.csrf(csrf -> csrf.disable())
|
||||||
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
|
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
|
||||||
.authorizeHttpRequests(auth -> auth
|
.authorizeHttpRequests(auth -> auth
|
||||||
.requestMatchers("/", "/login", "/swagger-ui/**", "/v3/api-docs/**").permitAll()
|
.requestMatchers("/", "/login", "/swagger-ui/**", "/v3/api-docs/**", "/docs/**", "/docs").permitAll()
|
||||||
.requestMatchers("/admin/**").hasRole("ADMIN")
|
.requestMatchers("/admin/**").hasRole("ADMIN")
|
||||||
.anyRequest().authenticated()
|
.anyRequest().authenticated()
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user