|
16 | 16 |
|
17 | 17 | import javax.lang.model.element.ExecutableElement; |
18 | 18 | import javax.lang.model.element.VariableElement; |
| 19 | +import javax.lang.model.type.TypeKind; |
| 20 | +import javax.lang.model.type.TypeMirror; |
19 | 21 | import java.util.ArrayList; |
20 | 22 | import java.util.List; |
21 | 23 |
|
@@ -117,13 +119,29 @@ void addMeta(ProcessingContext ctx) { |
117 | 119 | operation.setResponses(responses); |
118 | 120 |
|
119 | 121 | ApiResponse response = new ApiResponse(); |
120 | | - responses.addApiResponse(ApiResponses.DEFAULT, response); |
121 | 122 | response.setDescription(javadoc.getReturnDescription()); |
122 | 123 |
|
123 | | - response.setContent(ctx.createContent(element.getReturnType(), "application/json")); |
| 124 | + TypeMirror returnType = element.getReturnType(); |
| 125 | + if (isNoResponse(returnType)) { |
| 126 | + if (isEmpty(response.getDescription())) { |
| 127 | + response.setDescription("No content"); |
| 128 | + } |
| 129 | + responses.addApiResponse("204", response); |
| 130 | + } else { |
| 131 | + responses.addApiResponse(ApiResponses.DEFAULT, response); |
| 132 | + response.setContent(ctx.createContent(returnType, "application/json")); |
| 133 | + } |
124 | 134 | } |
125 | 135 | } |
126 | 136 |
|
| 137 | + private boolean isEmpty(String value) { |
| 138 | + return value == null || value.isEmpty(); |
| 139 | + } |
| 140 | + |
| 141 | + private boolean isNoResponse(TypeMirror returnType) { |
| 142 | + return returnType.getKind() == TypeKind.VOID; |
| 143 | + } |
| 144 | + |
127 | 145 | /** |
128 | 146 | * Return true if the method is included in documentation. |
129 | 147 | */ |
|
0 commit comments