Skip to content

Commit 9e5c00d

Browse files
committed
GH-217 Support all utility OpenApi annotations on field (Resolves #217)
1 parent 260f7a7 commit 9e5c00d

File tree

4 files changed

+29
-14
lines changed

4 files changed

+29
-14
lines changed

build.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
kotlin("jvm") version "1.9.22"
66
`maven-publish`
77
signing
8-
id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
8+
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
99
}
1010

1111
description = "Javalin OpenAPI Parent | Parent"
@@ -134,6 +134,8 @@ subprojects {
134134
nexusPublishing {
135135
repositories {
136136
sonatype {
137+
nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/"))
138+
snapshotRepositoryUrl.set(uri("https://central.sonatype.com/repository/maven-snapshots/"))
137139
username.set(getEnvOrProperty("SONATYPE_USER", "sonatypeUser"))
138140
password.set(getEnvOrProperty("SONATYPE_PASSWORD", "sonatypePassword"))
139141
}

examples/javalin-gradle-kotlin/src/main/java/io/javalin/openapi/plugin/test/JavalinTest.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -443,9 +443,22 @@ public String getProperty() {
443443

444444
// should work with properties generated by another annotation processor
445445
@Data
446+
@OpenApiByFields(Visibility.PRIVATE)
446447
static final class LombokEntity {
447-
448+
@OpenApiExample("example")
449+
@OpenApiDescription("description")
450+
@OpenApiPropertyType(definedBy = Integer.class)
451+
@OpenApiRequired
452+
@OpenApiName("customPropertyName")
453+
@OpenApiStringValidation(
454+
minLength = "2",
455+
maxLength = "10",
456+
pattern = "^[a-zA-Z]+$"
457+
)
448458
private String property;
459+
460+
@OpenApiIgnore
461+
public String test;
449462
}
450463

451464
// should pick upper/lower bound type for generics

openapi-specification/src/main/kotlin/io/javalin/openapi/OpenApiAnnotations.kt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -212,21 +212,21 @@ annotation class OpenApiSecurity(
212212
val scopes: Array<String> = []
213213
)
214214

215-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
215+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
216216
@Retention(RUNTIME)
217217
annotation class OpenApiIgnore
218218

219-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
219+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
220220
@Retention(RUNTIME)
221221
annotation class OpenApiRequired
222222

223-
@Target(CLASS, FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
223+
@Target(CLASS, FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
224224
@Retention(RUNTIME)
225225
annotation class OpenApiName(
226226
val value: String
227227
)
228228

229-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
229+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
230230
@Retention(RUNTIME)
231231
annotation class OpenApiExample(
232232
val value: String = NULL_STRING,
@@ -241,14 +241,14 @@ annotation class OpenApiExampleProperty(
241241
val objects: Array<OpenApiExampleProperty> = []
242242
)
243243

244-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
244+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
245245
@Retention(RUNTIME)
246246
@CustomAnnotation
247247
annotation class OpenApiNullable(
248248
val nullable: Boolean = true
249249
)
250250

251-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, CLASS)
251+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, CLASS, FIELD)
252252
@Retention(RUNTIME)
253253
annotation class OpenApiDescription(
254254
val value: String
@@ -260,7 +260,7 @@ enum class Nullability {
260260
AUTO
261261
}
262262

263-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
263+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
264264
@Retention(RUNTIME)
265265
annotation class OpenApiNumberValidation(
266266
val minimum: String = NULL_STRING,
@@ -270,7 +270,7 @@ annotation class OpenApiNumberValidation(
270270
val multipleOf: String = NULL_STRING
271271
)
272272

273-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
273+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
274274
@Retention(RUNTIME)
275275
annotation class OpenApiStringValidation(
276276
val minLength: String = NULL_STRING,
@@ -279,22 +279,22 @@ annotation class OpenApiStringValidation(
279279
val pattern: String = NULL_STRING
280280
)
281281

282-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
282+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
283283
@Retention(RUNTIME)
284284
annotation class OpenApiArrayValidation(
285285
val minItems: String = NULL_STRING,
286286
val maxItems: String = NULL_STRING,
287287
val uniqueItems: Boolean = false
288288
)
289289

290-
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
290+
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
291291
@Retention(RUNTIME)
292292
annotation class OpenApiObjectValidation(
293293
val minProperties: String = NULL_STRING,
294294
val maxProperties: String = NULL_STRING,
295295
)
296296

297-
@Target(CLASS, FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
297+
@Target(CLASS, FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
298298
@Retention(RUNTIME)
299299
annotation class OpenApiPropertyType(
300300
val definedBy: KClass<*>,

wiki

Submodule wiki updated from f7a1849 to fc312bf

0 commit comments

Comments
 (0)