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"
+ + " }"));
+ }
}