Skip to content

Commit 08c849b

Browse files
authored
bug: incorrect generic param for multi interfaces
public interface CrudControllerBase<S extends Service<?, ?>, SRC extends CustomQuery> { // some code } public interface ExistsControllerBase<S extends Service<?, ?>, EQUERY extends CustomQuery> { @PostMapping("exist") default Response<Boolean> exist(@RequestBody PostBody<EQUERY> req) { // some code } } @RestController @RequestMapping("/v1/{tenant_id:[0-9A-Z]+}/user") public class UserAdminController implements CrudControllerBase<AdminUserService, AdminUserSearch>, ExistsControllerBase<AdminUserService, UserExistsQuery> { // some code } the "requestBody" in "/v1/{tenant_id}/user/exist" path get incorrect schema: "schema": { "$ref": "#/components/schemas/PostBodyCustomQuery" } the correct schema should be: "schema": { "$ref": "#/components/schemas/PostBodyUserExistsQuery" }
1 parent 1b1e652 commit 08c849b

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/core/ReturnTypeParser.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,9 @@ static ResolvableType resolveVariable(TypeVariable<?> typeVariable, ResolvableTy
166166
}
167167
}
168168
for (ResolvableType ifc : contextType.getInterfaces()) {
169+
if(!ifc.getType().equals(typeVariable.getGenericDeclaration())){
170+
continue;
171+
}
169172
resolvedType = resolveVariable(typeVariable, ifc);
170173
if (resolvedType.resolve() != null) {
171174
return resolvedType;

0 commit comments

Comments
 (0)