Skip to content

Commit 001b053

Browse files
committed
OpenAPI uses javadoc for fields
1 parent 8b8e9d4 commit 001b053

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaDocBuilder.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static io.avaje.http.generator.core.Util.typeDef;
44

5+
import io.avaje.http.generator.core.javadoc.Javadoc;
56
import java.util.ArrayList;
67
import java.util.List;
78
import java.util.Map;
@@ -223,6 +224,7 @@ private <T> void populateObjectSchema(TypeMirror objectType, Schema<T> objectSch
223224
if (isNotNullable(field)) {
224225
propSchema.setNullable(Boolean.FALSE);
225226
}
227+
setDescription(field, propSchema);
226228
setLengthMinMax(field, propSchema);
227229
setFormatFromValidation(field, propSchema);
228230
objectSchema.addProperties(field.getSimpleName().toString(), propSchema);
@@ -236,6 +238,13 @@ private void setFormatFromValidation(Element element, Schema<?> propSchema) {
236238
}
237239
}
238240

241+
private void setDescription(Element element, Schema<?> propSchema) {
242+
var doc = Javadoc.parse(elements.getDocComment(element));
243+
if (!doc.getSummary().isEmpty()) {
244+
propSchema.setDescription(doc.getSummary());
245+
}
246+
}
247+
239248
private void setLengthMinMax(Element element, Schema<?> propSchema) {
240249
SizePrism.getOptionalOn(element)
241250
.ifPresent(

tests/test-javalin-jsonb/src/main/java/org/example/myapp/web/HelloDto.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@
88
public class HelloDto {
99

1010
public int id;
11+
/**
12+
* This is a comment.
13+
*/
1114
public String name;
15+
/**
16+
* This is a comment
17+
*/
1218
public String otherParam;
1319
private UUID gid;
1420

0 commit comments

Comments
 (0)