From dff527f380226d6fe1d3b248d9d2b705341520b3 Mon Sep 17 00:00:00 2001 From: Andrey Kassaev Date: Mon, 1 Jan 2024 17:55:36 +0400 Subject: [PATCH] swagger --- build.gradle.kts | 16 ++++++++++++++++ .../notes/config/SecurityConfiguration.kt | 2 +- src/main/kotlin/com/kassaev/notes/model/User.kt | 4 ++++ src/main/resources/application.yaml | 5 ++++- 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6bf2235..32ffcef 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin("jvm") version "1.9.22" kotlin("plugin.spring") version "1.9.22" kotlin("plugin.jpa") version "1.9.22" + id("org.springdoc.openapi-gradle-plugin") version "1.8.0" } group = "com.kassaev" @@ -37,6 +38,8 @@ dependencies { implementation("org.postgresql:postgresql:42.7.1") implementation("org.springframework.boot:spring-boot-starter-data-jpa:3.2.1") + + implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0") } tasks.withType { @@ -49,3 +52,16 @@ tasks.withType { tasks.withType { useJUnitPlatform() } + + +//for gradlew clean generateOpenApiDocs +tasks { + forkedSpringBootRun { + doNotTrackState("See https://github.com/springdoc/springdoc-openapi-gradle-plugin/issues/102") + } +} +//for gradlew clean generateOpenApiDocs +val port = "${System.getenv("SPRING_PORT")}" +openApi { + apiDocsUrl.set("http://localhost:$port/v3/api-docs") +} \ No newline at end of file diff --git a/src/main/kotlin/com/kassaev/notes/config/SecurityConfiguration.kt b/src/main/kotlin/com/kassaev/notes/config/SecurityConfiguration.kt index f3c2c58..4798ff0 100644 --- a/src/main/kotlin/com/kassaev/notes/config/SecurityConfiguration.kt +++ b/src/main/kotlin/com/kassaev/notes/config/SecurityConfiguration.kt @@ -25,7 +25,7 @@ class SecurityConfiguration( .csrf { it.disable() } .authorizeHttpRequests { it - .requestMatchers("/api/v1.0.0/auth", "/api/v1.0.0/auth/refresh", "/error") + .requestMatchers("/api/v1.0.0/auth", "/api/v1.0.0/auth/refresh", "/error", "/swagger-ui/**", "/swagger*", "/v3/api-docs", "/v3/api-docs/**") .permitAll() .requestMatchers(HttpMethod.POST, "/api/v1.0.0/user") .permitAll() diff --git a/src/main/kotlin/com/kassaev/notes/model/User.kt b/src/main/kotlin/com/kassaev/notes/model/User.kt index 5695827..c4ed579 100644 --- a/src/main/kotlin/com/kassaev/notes/model/User.kt +++ b/src/main/kotlin/com/kassaev/notes/model/User.kt @@ -5,11 +5,15 @@ import jakarta.persistence.* @Entity @Table(name="users") data class User( + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long?, + val email: String, + val password: String, + @Enumerated(EnumType.STRING) val role: Role ) diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 6c2efff..a5c30c1 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -12,4 +12,7 @@ spring: hibernate: ddl-auto: update server: - port: ${SPRING_PORT} \ No newline at end of file + port: ${SPRING_PORT} +springdoc: + swagger-ui: + enabled: false \ No newline at end of file