diff --git a/typescript-generator-spring/pom.xml b/typescript-generator-spring/pom.xml index 70055d110..c57dfd191 100644 --- a/typescript-generator-spring/pom.xml +++ b/typescript-generator-spring/pom.xml @@ -61,7 +61,6 @@ io.swagger swagger-annotations 1.6.4 - test io.swagger.core.v3 diff --git a/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java b/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java index 99b36662f..4839666ba 100644 --- a/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java +++ b/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java @@ -22,6 +22,7 @@ import cz.habarta.typescript.generator.util.Pair; import cz.habarta.typescript.generator.util.Utils; import static cz.habarta.typescript.generator.util.Utils.getInheritanceChain; +import io.swagger.annotations.Api; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; @@ -123,7 +124,8 @@ public JaxrsApplicationParser.Result tryParse(SourceType sourceType) { // controller final Component component = AnnotationUtils.findAnnotation(cls, Component.class); - if (component != null) { + final Api api = AnnotationUtils.findAnnotation(cls, Api.class); + if (component != null || api != null) { TypeScriptGenerator.getLogger().verbose("Parsing Spring component: " + cls.getName()); final JaxrsApplicationParser.Result result = new JaxrsApplicationParser.Result(); final RequestMapping requestMapping = AnnotatedElementUtils.findMergedAnnotation(cls, RequestMapping.class); diff --git a/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java b/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java index a2a932bef..479251100 100644 --- a/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java +++ b/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java @@ -7,6 +7,7 @@ import cz.habarta.typescript.generator.TypeScriptFileType; import cz.habarta.typescript.generator.TypeScriptGenerator; import cz.habarta.typescript.generator.util.Utils; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.Operation; import java.lang.annotation.Retention; @@ -488,4 +489,27 @@ public String shouldBeExcluded() { } } + @Api(value = "customer") + public interface OpenApiGeneratorCreatedApi { + + @RequestMapping( + method = RequestMethod.GET, + value = "/generated/api", + produces = {"application/json"} + ) + ResponseEntity getGeneratedApi(); + } + + @Test + void testOpenApiGeneratorCreatedInterfacesAreIncluded() { + final Settings settings = TestUtils.settings(); + settings.outputFileType = TypeScriptFileType.implementationFile; + settings.generateSpringApplicationClient = true; + final String output = new TypeScriptGenerator(settings).generateTypeScript( + Input.from(OpenApiGeneratorCreatedApi.class)); + Assertions.assertTrue(output.contains( + "getGeneratedApi(): RestResponse {\n" + + " return this.httpClient.request({ method: \"GET\", url: uriEncoding`generated/api` });\n" + + " }")); + } }