Skip to content

Commit f5440a9

Browse files
committed
fixes imports when spec contains no schema
1 parent 56c6401 commit f5440a9

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/DefaultGenerator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,11 @@ private void generateApis(List<File> files, List<Object> allOperations, List<Obj
416416
if (!generateApis) {
417417
return;
418418
}
419+
boolean hasModel = true;
420+
if (allModels == null || allModels.isEmpty()) {
421+
hasModel = false;
422+
}
423+
419424
Map<String, List<CodegenOperation>> paths = processPaths(this.openAPI.getPaths());
420425
Set<String> apisToGenerate = null;
421426
String apiNames = System.getProperty("apis");
@@ -464,6 +469,9 @@ public int compare(CodegenOperation one, CodegenOperation another) {
464469
}
465470
operation.put("sortParamsByRequiredFlag", sortParamsByRequiredFlag);
466471

472+
operation.put("hasModel", hasModel);
473+
474+
467475
allOperations.add(new HashMap<>(operation));
468476
for (int i = 0; i < allOperations.size(); i++) {
469477
Map<String, Object> oo = (Map<String, Object>) allOperations.get(i);

modules/swagger-codegen/src/test/java/io/swagger/codegen/v3/service/GeneratorServiceTest.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.swagger.v3.oas.models.OpenAPI;
77
import io.swagger.v3.parser.OpenAPIV3Parser;
88
import io.swagger.v3.parser.core.models.ParseOptions;
9+
import org.apache.commons.io.FileUtils;
910
import org.apache.commons.io.IOUtils;
1011
import org.testng.Assert;
1112
import org.testng.annotations.Test;
@@ -33,6 +34,34 @@ public void testGeneratorServiceJava3() {
3334
Assert.assertFalse(files.isEmpty());
3435
}
3536

37+
@Test
38+
public void testNoModel() throws Exception{
39+
40+
String path = getTmpFolder().getAbsolutePath();
41+
GenerationRequest request = new GenerationRequest();
42+
request
43+
.codegenVersion(GenerationRequest.CodegenVersion.V3)
44+
.type(GenerationRequest.Type.SERVER)
45+
.lang("jaxrs-jersey")
46+
.spec(loadSpecAsNode("3_0_0/noModel.yaml", true, false))
47+
.options(
48+
new Options()
49+
.outputDir(path)
50+
);
51+
List<File> files = new GeneratorService().generationRequest(request).generate();
52+
System.out.println(path);
53+
Assert.assertFalse(files.isEmpty());
54+
for (File f: files) {
55+
String relPath = f.getAbsolutePath().substring(path.length());
56+
if ("/src/main/java/io/swagger/api/impl/FooApiServiceImpl.java".equals(relPath) ||
57+
"/src/gen/java/io/swagger/api/FooApiService.java".equals(relPath) ||
58+
"/src/gen/java/io/swagger/api/FooApi.java".equals(relPath)) {
59+
Assert.assertFalse(FileUtils.readFileToString(f).contains("import io.swagger.model"));
60+
}
61+
}
62+
63+
}
64+
3665
@Test(description = "test generator service with java 2.0")
3766
public void testGeneratorServiceJava2() {
3867

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Sample API
4+
version: '1'
5+
servers:
6+
- url: 'http://localhost:9080/1'
7+
paths:
8+
/foo:
9+
get:
10+
responses:
11+
'200':
12+
description: OK
13+
content:
14+
application/json:
15+
schema:
16+
type: object

0 commit comments

Comments
 (0)