Skip to content

Commit 6bc538f

Browse files
committed
#45 Add common OAPI server generate function
1 parent c203fb8 commit 6bc538f

File tree

3 files changed

+40
-62
lines changed

3 files changed

+40
-62
lines changed

backend/buildSrc/src/main/kotlin/buildlogic.foundation-conventions.gradle.kts

+34
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,37 @@ plugins {
33
id("org.openapi.generator")
44
application
55
}
6+
7+
extra["generateOAPIServer"] = { serviceName: String ->
8+
val apiResourcesDir = layout.projectDirectory.asFile.let { "$it/src/main/resources" }
9+
val generatedDir = layout.buildDirectory.dir("generated").get().toString()
10+
11+
openApiGenerate {
12+
generatorName = "kotlin-spring"
13+
inputSpec = "$apiResourcesDir/static/openapi/api.yml"
14+
outputDir = generatedDir
15+
invokerPackage = "$group.$serviceName"
16+
apiPackage = "$group.$serviceName.api.generated"
17+
modelPackage = "$group.$serviceName.model.generated"
18+
configOptions = mapOf(
19+
"delegatePattern" to "true",
20+
"useSpringBoot3" to "true",
21+
)
22+
}
23+
24+
sourceSets {
25+
main {
26+
kotlin {
27+
srcDir("$generatedDir/src/main/kotlin")
28+
}
29+
}
30+
}
31+
32+
tasks.compileKotlin.configure {
33+
dependsOn("openApiGenerate")
34+
}
35+
36+
application {
37+
mainClass = "$group.$serviceName.ApplicationKt"
38+
}
39+
}

backend/matchmaker/build.gradle.kts

+3-31
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@file:Suppress("UNCHECKED_CAST")
2+
13
plugins {
24
id("buildlogic.foundation-conventions")
35
}
@@ -7,34 +9,4 @@ dependencies {
79
testImplementation(project(":foundation-test"))
810
}
911

10-
val apiResourcesDir = layout.projectDirectory.asFile.let { "$it/src/main/resources" }
11-
val generatedDir = layout.buildDirectory.dir("generated").get().toString()
12-
13-
openApiGenerate {
14-
generatorName = "kotlin-spring"
15-
inputSpec = "$apiResourcesDir/static/openapi/api.yml"
16-
outputDir = generatedDir
17-
invokerPackage = "${group}.matchmaker"
18-
apiPackage = "${group}.matchmaker.api.generated"
19-
modelPackage = "${group}.matchmaker.model.generated"
20-
configOptions = mapOf(
21-
"delegatePattern" to "true",
22-
"useSpringBoot3" to "true",
23-
)
24-
}
25-
26-
sourceSets {
27-
main {
28-
kotlin {
29-
srcDir("${generatedDir}/src/main/kotlin")
30-
}
31-
}
32-
}
33-
34-
tasks.compileKotlin.configure {
35-
dependsOn("openApiGenerate")
36-
}
37-
38-
application {
39-
mainClass = "${group}.matchmaker.ApplicationKt"
40-
}
12+
(extra["generateOAPIServer"] as (String) -> Unit)("matchmaker")

backend/people/build.gradle.kts

+3-31
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@file:Suppress("UNCHECKED_CAST")
2+
13
plugins {
24
id("buildlogic.foundation-conventions")
35
}
@@ -7,34 +9,4 @@ dependencies {
79
testImplementation(project(":foundation-test"))
810
}
911

10-
val apiResourcesDir = layout.projectDirectory.asFile.let { "$it/src/main/resources" }
11-
val generatedDir = layout.buildDirectory.dir("generated").get().toString()
12-
13-
openApiGenerate {
14-
generatorName = "kotlin-spring"
15-
inputSpec = "$apiResourcesDir/static/openapi/api.yml"
16-
outputDir = generatedDir
17-
invokerPackage = "${group}.people"
18-
apiPackage = "${group}.people.api.generated"
19-
modelPackage = "${group}.people.model.generated"
20-
configOptions = mapOf(
21-
"delegatePattern" to "true",
22-
"useSpringBoot3" to "true",
23-
)
24-
}
25-
26-
sourceSets {
27-
main {
28-
kotlin {
29-
srcDir("${generatedDir}/src/main/kotlin")
30-
}
31-
}
32-
}
33-
34-
tasks.compileKotlin.configure {
35-
dependsOn("openApiGenerate")
36-
}
37-
38-
application {
39-
mainClass = "${group}.people.ApplicationKt"
40-
}
12+
(extra["generateOAPIServer"] as (String) -> Unit)("people")

0 commit comments

Comments
 (0)