forked from loafle/openapi-generator-original
fix(fastapi): use correct impl & package name with custom values (#20970)
Signed-off-by: Henrik Gerdes <hegerdes@outlook.de>
This commit is contained in:
parent
ee7927a525
commit
abce11152e
@ -71,6 +71,7 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen {
|
|||||||
private static final int DEFAULT_SERVER_PORT = 8080;
|
private static final int DEFAULT_SERVER_PORT = 8080;
|
||||||
private static final String DEFAULT_PACKAGE_NAME = "openapi_server";
|
private static final String DEFAULT_PACKAGE_NAME = "openapi_server";
|
||||||
private static final String DEFAULT_SOURCE_FOLDER = "src";
|
private static final String DEFAULT_SOURCE_FOLDER = "src";
|
||||||
|
private static final String DEFAULT_IMPL_FOLDER = "impl";
|
||||||
private static final String DEFAULT_PACKAGE_VERSION = "1.0.0";
|
private static final String DEFAULT_PACKAGE_VERSION = "1.0.0";
|
||||||
|
|
||||||
private String implPackage;
|
private String implPackage;
|
||||||
@ -109,7 +110,7 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen {
|
|||||||
additionalProperties.put("baseSuffix", BASE_CLASS_SUFFIX);
|
additionalProperties.put("baseSuffix", BASE_CLASS_SUFFIX);
|
||||||
additionalProperties.put(CodegenConstants.SOURCE_FOLDER, DEFAULT_SOURCE_FOLDER);
|
additionalProperties.put(CodegenConstants.SOURCE_FOLDER, DEFAULT_SOURCE_FOLDER);
|
||||||
additionalProperties.put(CodegenConstants.PACKAGE_NAME, DEFAULT_PACKAGE_NAME);
|
additionalProperties.put(CodegenConstants.PACKAGE_NAME, DEFAULT_PACKAGE_NAME);
|
||||||
additionalProperties.put(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE, DEFAULT_PACKAGE_NAME.concat(".impl"));
|
additionalProperties.put(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE, DEFAULT_IMPL_FOLDER);
|
||||||
|
|
||||||
languageSpecificPrimitives.add("List");
|
languageSpecificPrimitives.add("List");
|
||||||
languageSpecificPrimitives.add("Dict");
|
languageSpecificPrimitives.add("Dict");
|
||||||
@ -124,7 +125,7 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen {
|
|||||||
apiPackage = "apis";
|
apiPackage = "apis";
|
||||||
modelPackage = "models";
|
modelPackage = "models";
|
||||||
testPackage = "tests";
|
testPackage = "tests";
|
||||||
implPackage = "impl";
|
implPackage = DEFAULT_IMPL_FOLDER;
|
||||||
apiTestTemplateFiles().put("api_test.mustache", ".py");
|
apiTestTemplateFiles().put("api_test.mustache", ".py");
|
||||||
|
|
||||||
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).")
|
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).")
|
||||||
@ -153,10 +154,14 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen {
|
|||||||
|
|
||||||
if (additionalProperties.containsKey(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE)) {
|
if (additionalProperties.containsKey(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE)) {
|
||||||
this.implPackage = ((String) additionalProperties.get(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE));
|
this.implPackage = ((String) additionalProperties.get(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE));
|
||||||
|
// Prefix templating value with the package name
|
||||||
|
additionalProperties.put(CodegenConstants.FASTAPI_IMPLEMENTATION_PACKAGE,
|
||||||
|
this.packageName + "." + this.implPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
modelPackage = packageName + "." + modelPackage;
|
modelPackage = packageName + "." + modelPackage;
|
||||||
apiPackage = packageName + "." + apiPackage;
|
apiPackage = packageName + "." + apiPackage;
|
||||||
|
implPackage = packageName + "." + implPackage;
|
||||||
|
|
||||||
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
|
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
|
||||||
supportingFiles.add(new SupportingFile("openapi.mustache", "", "openapi.yaml"));
|
supportingFiles.add(new SupportingFile("openapi.mustache", "", "openapi.yaml"));
|
||||||
|
@ -30,7 +30,7 @@ public class PythonFastapiCodegenTest {
|
|||||||
List<File> files = generator.opts(configurator.toClientOptInput()).generate();
|
List<File> files = generator.opts(configurator.toClientOptInput()).generate();
|
||||||
files.forEach(File::deleteOnExit);
|
files.forEach(File::deleteOnExit);
|
||||||
|
|
||||||
TestUtils.assertFileExists(Paths.get(output.getAbsolutePath(), "/src", IMPL_PKG, "__init__.py"));
|
TestUtils.assertFileExists(Paths.get(output.getAbsolutePath(), "/src", "/nodesc", IMPL_PKG, "__init__.py"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Loading…
x
Reference in New Issue
Block a user