Skip to content

Commit 12cfd09

Browse files
committed
Merge branch 'add-ktordsl-annotation-to-documented-routes' into develop
2 parents 4514e92 + 212011f commit 12cfd09

2 files changed

Lines changed: 38 additions & 9 deletions

File tree

ktor-swagger-ui/src/main/kotlin/io/github/smiley4/ktorswaggerui/dsl/routing/DocumentedRouteSelector.kt

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class DocumentedRouteSelector(val documentation: OpenApiRoute) : RouteSelector()
3131
override fun toString() = if (includeDocumentedRouteInRouteToString) super.toString() else ""
3232
}
3333

34+
@KtorDsl
3435
fun Route.documentation(
3536
documentation: OpenApiRoute.() -> Unit = { },
3637
build: Route.() -> Unit
@@ -44,13 +45,15 @@ fun Route.documentation(
4445
// ROUTING //
4546
//============================//
4647

48+
@KtorDsl
4749
fun Route.route(
4850
builder: OpenApiRoute.() -> Unit = { },
4951
build: Route.() -> Unit
5052
): Route {
5153
return documentation(builder) { route("", build) }
5254
}
5355

56+
@KtorDsl
5457
fun Route.route(
5558
method: HttpMethod,
5659
builder: OpenApiRoute.() -> Unit = { },
@@ -59,6 +62,7 @@ fun Route.route(
5962
return documentation(builder) { route("", method, build) }
6063
}
6164

65+
@KtorDsl
6266
fun Route.route(
6367
path: String,
6468
builder: OpenApiRoute.() -> Unit = { },
@@ -67,6 +71,7 @@ fun Route.route(
6771
return documentation(builder) { route(path, build) }
6872
}
6973

74+
@KtorDsl
7075
fun Route.route(
7176
path: String,
7277
method: HttpMethod,
@@ -76,6 +81,7 @@ fun Route.route(
7681
return documentation(builder) { route(path, method, build) }
7782
}
7883

84+
@KtorDsl
7985
fun Route.method(
8086
method: HttpMethod,
8187
builder: OpenApiRoute.() -> Unit = { },
@@ -88,6 +94,7 @@ fun Route.method(
8894
// GET //
8995
//============================//
9096

97+
@KtorDsl
9198
fun Route.get(
9299
path: String,
93100
builder: OpenApiRoute.() -> Unit = { },
@@ -96,6 +103,7 @@ fun Route.get(
96103
return documentation(builder) { get(path, body) }
97104
}
98105

106+
@KtorDsl
99107
fun Route.get(
100108
builder: OpenApiRoute.() -> Unit = { },
101109
body: suspend io.ktor.server.routing.RoutingContext.() -> Unit
@@ -108,6 +116,7 @@ fun Route.get(
108116
// POST //
109117
//============================//
110118

119+
@KtorDsl
111120
fun Route.post(
112121
path: String,
113122
builder: OpenApiRoute.() -> Unit = { },
@@ -116,6 +125,7 @@ fun Route.post(
116125
return documentation(builder) { post(path, body) }
117126
}
118127

128+
@KtorDsl
119129
@JvmName("postTyped")
120130
inline fun <reified R : Any> Route.post(
121131
noinline builder: OpenApiRoute.() -> Unit = { },
@@ -124,6 +134,7 @@ inline fun <reified R : Any> Route.post(
124134
return documentation(builder) { post(body) }
125135
}
126136

137+
@KtorDsl
127138
@JvmName("postTypedPath")
128139
inline fun <reified R : Any> Route.post(
129140
path: String,
@@ -133,7 +144,7 @@ inline fun <reified R : Any> Route.post(
133144
return documentation(builder) { post(path, body) }
134145
}
135146

136-
147+
@KtorDsl
137148
fun Route.post(
138149
builder: OpenApiRoute.() -> Unit = { },
139150
body: suspend io.ktor.server.routing.RoutingContext.() -> Unit
@@ -146,6 +157,7 @@ fun Route.post(
146157
// PUT //
147158
//============================//
148159

160+
@KtorDsl
149161
fun Route.put(
150162
path: String,
151163
builder: OpenApiRoute.() -> Unit = { },
@@ -154,13 +166,15 @@ fun Route.put(
154166
return documentation(builder) { put(path, body) }
155167
}
156168

169+
@KtorDsl
157170
fun Route.put(
158171
builder: OpenApiRoute.() -> Unit = { },
159172
body: suspend io.ktor.server.routing.RoutingContext.() -> Unit
160173
): Route {
161174
return documentation(builder) { put(body) }
162175
}
163176

177+
@KtorDsl
164178
@JvmName("putTyped")
165179
inline fun <reified R : Any> Route.put(
166180
noinline builder: OpenApiRoute.() -> Unit = { },
@@ -169,6 +183,7 @@ inline fun <reified R : Any> Route.put(
169183
return documentation(builder) { put(body) }
170184
}
171185

186+
@KtorDsl
172187
@JvmName("putTypedPath")
173188
inline fun <reified R : Any> Route.put(
174189
path: String,
@@ -183,6 +198,7 @@ inline fun <reified R : Any> Route.put(
183198
// DELETE //
184199
//============================//
185200

201+
@KtorDsl
186202
fun Route.delete(
187203
path: String,
188204
builder: OpenApiRoute.() -> Unit = { },
@@ -191,6 +207,7 @@ fun Route.delete(
191207
return documentation(builder) { delete(path, body) }
192208
}
193209

210+
@KtorDsl
194211
fun Route.delete(
195212
builder: OpenApiRoute.() -> Unit = { },
196213
body: suspend io.ktor.server.routing.RoutingContext.() -> Unit
@@ -243,6 +260,7 @@ inline fun <reified R : Any> Route.patch(
243260
// OPTIONS //
244261
//============================//
245262

263+
@KtorDsl
246264
fun Route.options(
247265
path: String,
248266
builder: OpenApiRoute.() -> Unit = { },
@@ -251,6 +269,7 @@ fun Route.options(
251269
return documentation(builder) { options(path, body) }
252270
}
253271

272+
@KtorDsl
254273
fun Route.options(
255274
builder: OpenApiRoute.() -> Unit = { },
256275
body: suspend io.ktor.server.routing.RoutingContext.() -> Unit
@@ -263,6 +282,7 @@ fun Route.options(
263282
// HEAD //
264283
//============================//
265284

285+
@KtorDsl
266286
fun Route.head(
267287
path: String,
268288
builder: OpenApiRoute.() -> Unit = { },
@@ -271,6 +291,7 @@ fun Route.head(
271291
return documentation(builder) { head(path, body) }
272292
}
273293

294+
@KtorDsl
274295
fun Route.head(
275296
builder: OpenApiRoute.() -> Unit = { },
276297
body: suspend io.ktor.server.routing.RoutingContext.() -> Unit

ktor-swagger-ui/src/main/kotlin/io/github/smiley4/ktorswaggerui/dsl/routing/resources/DocumentedResourceRoutes.kt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,17 @@ import io.ktor.http.HttpMethod
77
import io.ktor.server.resources.*
88
import io.ktor.server.routing.Route
99
import io.ktor.server.routing.RoutingContext
10+
import io.ktor.utils.io.KtorDsl
1011
import kotlinx.serialization.serializer
1112

1213
//============================//
1314
// GET //
1415
//============================//
1516

17+
@KtorDsl
1618
inline fun <reified T : Any> Route.get(
1719
noinline builder: OpenApiRoute.() -> Unit = { },
18-
noinline body: suspend io.ktor.server.routing.RoutingContext.(T) -> Unit
20+
noinline body: suspend RoutingContext.(T) -> Unit
1921
): Route {
2022
return documentation(builder) {
2123
resource<T> {
@@ -30,9 +32,10 @@ inline fun <reified T : Any> Route.get(
3032
// POST //
3133
//============================//
3234

35+
@KtorDsl
3336
inline fun <reified T : Any> Route.post(
3437
noinline builder: OpenApiRoute.() -> Unit = { },
35-
noinline body: suspend io.ktor.server.routing.RoutingContext.(T) -> Unit
38+
noinline body: suspend RoutingContext.(T) -> Unit
3639
): Route {
3740
return documentation(builder) {
3841
resource<T> {
@@ -47,9 +50,10 @@ inline fun <reified T : Any> Route.post(
4750
// PUT //
4851
//============================//
4952

53+
@KtorDsl
5054
inline fun <reified T : Any> Route.put(
5155
noinline builder: OpenApiRoute.() -> Unit = { },
52-
noinline body: suspend io.ktor.server.routing.RoutingContext.(T) -> Unit
56+
noinline body: suspend RoutingContext.(T) -> Unit
5357
): Route {
5458
return documentation(builder) {
5559
resource<T> {
@@ -64,9 +68,10 @@ inline fun <reified T : Any> Route.put(
6468
// DELETE //
6569
//============================//
6670

71+
@KtorDsl
6772
inline fun <reified T : Any> Route.delete(
6873
noinline builder: OpenApiRoute.() -> Unit = { },
69-
noinline body: suspend io.ktor.server.routing.RoutingContext.(T) -> Unit
74+
noinline body: suspend RoutingContext.(T) -> Unit
7075
): Route {
7176
return documentation(builder) {
7277
resource<T> {
@@ -81,9 +86,10 @@ inline fun <reified T : Any> Route.delete(
8186
// PATCH //
8287
//============================//
8388

89+
@KtorDsl
8490
inline fun <reified T : Any> Route.patch(
8591
noinline builder: OpenApiRoute.() -> Unit = { },
86-
noinline body: suspend io.ktor.server.routing.RoutingContext.(T) -> Unit
92+
noinline body: suspend RoutingContext.(T) -> Unit
8793
): Route {
8894
return documentation(builder) {
8995
resource<T> {
@@ -98,9 +104,10 @@ inline fun <reified T : Any> Route.patch(
98104
// OPTIONS //
99105
//============================//
100106

107+
@KtorDsl
101108
inline fun <reified T : Any> Route.options(
102109
noinline builder: OpenApiRoute.() -> Unit = { },
103-
noinline body: suspend io.ktor.server.routing.RoutingContext.(T) -> Unit
110+
noinline body: suspend RoutingContext.(T) -> Unit
104111
): Route {
105112
return documentation(builder) {
106113
resource<T> {
@@ -115,9 +122,10 @@ inline fun <reified T : Any> Route.options(
115122
// HEAD //
116123
//============================//
117124

125+
@KtorDsl
118126
inline fun <reified T : Any> Route.head(
119127
noinline builder: OpenApiRoute.() -> Unit = { },
120-
noinline body: suspend io.ktor.server.routing.RoutingContext.(T) -> Unit
128+
noinline body: suspend RoutingContext.(T) -> Unit
121129
): Route {
122130
return documentation(builder) {
123131
resource<T> {
@@ -129,7 +137,7 @@ inline fun <reified T : Any> Route.head(
129137
}
130138

131139

132-
public inline fun <reified T : Any> Route.handle(
140+
inline fun <reified T : Any> Route.handle(
133141
noinline body: suspend RoutingContext.(T) -> Unit
134142
) {
135143
val serializer = serializer<T>()

0 commit comments

Comments
 (0)