mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-03 14:10:56 +00:00
better code format in c#, aspnet generators (#11662)
This commit is contained in:
parent
c161358aa8
commit
2918b8706e
@ -49,7 +49,7 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
|
||||
public static final String GENERATE_BODY = "generateBody";
|
||||
public static final String BUILD_TARGET = "buildTarget";
|
||||
public static final String MODEL_CLASS_MODIFIER = "modelClassModifier";
|
||||
public static final String TARGET_FRAMEWORK= "targetFramework";
|
||||
public static final String TARGET_FRAMEWORK = "targetFramework";
|
||||
|
||||
public static final String PROJECT_SDK = "projectSdk";
|
||||
public static final String SDK_WEB = "Microsoft.NET.Sdk.Web";
|
||||
@ -150,8 +150,8 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
|
||||
|
||||
// CLI options
|
||||
addOption(CodegenConstants.PACKAGE_DESCRIPTION,
|
||||
CodegenConstants.PACKAGE_DESCRIPTION_DESC,
|
||||
packageDescription);
|
||||
CodegenConstants.PACKAGE_DESCRIPTION_DESC,
|
||||
packageDescription);
|
||||
|
||||
addOption(CodegenConstants.LICENSE_URL,
|
||||
CodegenConstants.LICENSE_URL_DESC,
|
||||
@ -474,10 +474,9 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(consumesString.toString().isEmpty()) {
|
||||
if (consumesString.toString().isEmpty()) {
|
||||
consumesString = new StringBuilder("\"" + consume.get("mediaType") + "\"");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
consumesString.append(", \"").append(consume.get("mediaType")).append("\"");
|
||||
}
|
||||
|
||||
@ -502,7 +501,7 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
|
||||
}
|
||||
}
|
||||
|
||||
if(!consumesString.toString().isEmpty()) {
|
||||
if (!consumesString.toString().isEmpty()) {
|
||||
operation.vendorExtensions.put("x-aspnetcore-consumes", consumesString.toString());
|
||||
}
|
||||
}
|
||||
@ -598,7 +597,7 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
|
||||
private void setBuildTarget() {
|
||||
setCliOption(buildTarget);
|
||||
if ("library".equals(buildTarget.getOptValue())) {
|
||||
LOGGER.warn("buildTarget is {} so changing default isLibrary to true", buildTarget.getOptValue());
|
||||
LOGGER.warn("buildTarget is {} so changing default isLibrary to true", buildTarget.getOptValue());
|
||||
isLibrary = true;
|
||||
projectSdk = SDK_LIB;
|
||||
additionalProperties.put(CLASS_MODIFIER, "abstract");
|
||||
@ -621,7 +620,7 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
|
||||
compatibilityVersion = "Version_" + aspnetCoreVersion.getOptValue().replace(".", "_");
|
||||
}
|
||||
LOGGER.info("ASP.NET core version: {}", aspnetCoreVersion.getOptValue());
|
||||
if(!additionalProperties.containsKey(CodegenConstants.TEMPLATE_DIR)){
|
||||
if (!additionalProperties.containsKey(CodegenConstants.TEMPLATE_DIR)) {
|
||||
templateDir = embeddedTemplateDir = "aspnetcore" + File.separator + determineTemplateVersion(aspnetCoreVersion.getOptValue());
|
||||
}
|
||||
additionalProperties.put(COMPATIBILITY_VERSION, compatibilityVersion);
|
||||
|
@ -181,7 +181,7 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
this.packageName);
|
||||
|
||||
addOption(CodegenConstants.API_NAME,
|
||||
"Must be a valid C# class name. Only used in Generic Host library. Default: " + this.apiName,
|
||||
"Must be a valid C# class name. Only used in Generic Host library. Default: " + this.apiName,
|
||||
this.apiName);
|
||||
|
||||
addOption(CodegenConstants.PACKAGE_VERSION,
|
||||
@ -275,7 +275,7 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
addSwitch(CodegenConstants.OPTIONAL_EMIT_DEFAULT_VALUES,
|
||||
CodegenConstants.OPTIONAL_EMIT_DEFAULT_VALUES_DESC,
|
||||
this.optionalEmitDefaultValuesFlag);
|
||||
|
||||
|
||||
addSwitch(CodegenConstants.OPTIONAL_CONDITIONAL_SERIALIZATION,
|
||||
CodegenConstants.OPTIONAL_CONDITIONAL_SERIALIZATION_DESC,
|
||||
this.conditionalSerialization);
|
||||
@ -334,9 +334,9 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
|
||||
@Override
|
||||
public String apiDocFileFolder() {
|
||||
if (GENERICHOST.equals(getLibrary())){
|
||||
if (GENERICHOST.equals(getLibrary())) {
|
||||
return (outputFolder + "/" + apiDocPath + File.separatorChar + "apis").replace('/', File.separatorChar);
|
||||
}else{
|
||||
} else {
|
||||
return (outputFolder + "/" + apiDocPath).replace('/', File.separatorChar);
|
||||
}
|
||||
}
|
||||
@ -396,15 +396,15 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
}
|
||||
|
||||
// avoid breaking changes
|
||||
if (GENERICHOST.equals(getLibrary())){
|
||||
if (GENERICHOST.equals(getLibrary())) {
|
||||
Comparator<CodegenProperty> comparatorByDefaultValue = new Comparator<CodegenProperty>() {
|
||||
@Override
|
||||
@Override
|
||||
public int compare(CodegenProperty one, CodegenProperty another) {
|
||||
if (one.defaultValue == another.defaultValue)
|
||||
if (one.defaultValue == another.defaultValue)
|
||||
return 0;
|
||||
else if (Boolean.FALSE.equals(one.defaultValue))
|
||||
else if (Boolean.FALSE.equals(one.defaultValue))
|
||||
return -1;
|
||||
else
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
@ -412,11 +412,11 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
Comparator<CodegenProperty> comparatorByRequired = new Comparator<CodegenProperty>() {
|
||||
@Override
|
||||
public int compare(CodegenProperty one, CodegenProperty another) {
|
||||
if (one.required == another.required)
|
||||
if (one.required == another.required)
|
||||
return 0;
|
||||
else if (Boolean.TRUE.equals(one.required))
|
||||
return -1;
|
||||
else
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
@ -502,9 +502,9 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
|
||||
@Override
|
||||
public String modelDocFileFolder() {
|
||||
if (GENERICHOST.equals(getLibrary())){
|
||||
if (GENERICHOST.equals(getLibrary())) {
|
||||
return (outputFolder + "/" + modelDocPath + File.separator + "models").replace('/', File.separatorChar);
|
||||
}else{
|
||||
} else {
|
||||
return (outputFolder + "/" + modelDocPath).replace('/', File.separatorChar);
|
||||
}
|
||||
}
|
||||
@ -630,7 +630,7 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
|
||||
clientPackage = "Client";
|
||||
|
||||
if (GENERICHOST.equals(getLibrary())){
|
||||
if (GENERICHOST.equals(getLibrary())) {
|
||||
setLibrary(GENERICHOST);
|
||||
additionalProperties.put("useGenericHost", true);
|
||||
// all c# libraries should be doing this, but we only do it here to avoid breaking changes
|
||||
@ -656,7 +656,7 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
additionalProperties.put("multiTarget", true);
|
||||
} else {
|
||||
// just a single value
|
||||
frameworks = new String [] {inputFramework};
|
||||
frameworks = new String[]{inputFramework};
|
||||
}
|
||||
|
||||
for (String framework : frameworks) {
|
||||
@ -668,14 +668,14 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
}
|
||||
|
||||
if (frameworkStrategy != FrameworkStrategy.NETSTANDARD_2_0 && "restsharp".equals(getLibrary())) {
|
||||
LOGGER.warn("If using built-in templates, RestSharp only supports netstandard 2.0 or later.");
|
||||
LOGGER.warn("If using built-in templates, RestSharp only supports netstandard 2.0 or later.");
|
||||
}
|
||||
}
|
||||
|
||||
if (!strategyMatched) {
|
||||
// throws exception if the input targetFramework is invalid
|
||||
throw new IllegalArgumentException("The input (" + inputFramework + ") contains Invalid .NET framework version: " +
|
||||
framework + ". List of supported versions: " +
|
||||
framework + ". List of supported versions: " +
|
||||
frameworkStrategies.stream()
|
||||
.map(p -> p.name)
|
||||
.collect(Collectors.joining(", ")));
|
||||
@ -693,13 +693,13 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
if (!netStandard) {
|
||||
setNetCoreProjectFileFlag(true);
|
||||
|
||||
if (!additionalProperties.containsKey(CodegenConstants.NULLABLE_REFERENCE_TYPES) && !strategies.stream().anyMatch(s ->
|
||||
s.equals(FrameworkStrategy.NETCOREAPP_2_0) ||
|
||||
s.equals(FrameworkStrategy.NETCOREAPP_2_1) ||
|
||||
s.equals(FrameworkStrategy.NETCOREAPP_3_0) ||
|
||||
s.equals(FrameworkStrategy.NETCOREAPP_3_1) ||
|
||||
s.equals(FrameworkStrategy.NET_5_0) ||
|
||||
s.equals(FrameworkStrategy.NETFRAMEWORK_4_7))) {
|
||||
if (!additionalProperties.containsKey(CodegenConstants.NULLABLE_REFERENCE_TYPES) && !strategies.stream().anyMatch(s ->
|
||||
s.equals(FrameworkStrategy.NETCOREAPP_2_0) ||
|
||||
s.equals(FrameworkStrategy.NETCOREAPP_2_1) ||
|
||||
s.equals(FrameworkStrategy.NETCOREAPP_3_0) ||
|
||||
s.equals(FrameworkStrategy.NETCOREAPP_3_1) ||
|
||||
s.equals(FrameworkStrategy.NET_5_0) ||
|
||||
s.equals(FrameworkStrategy.NETFRAMEWORK_4_7))) {
|
||||
// starting in .net 6.0, NRT is enabled by default. If not specified, lets enable NRT to match the framework's default
|
||||
setNullableReferenceTypes(true);
|
||||
}
|
||||
@ -749,19 +749,17 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
apiTestTemplateFiles.put("api_test.mustache", ".cs");
|
||||
}
|
||||
|
||||
if(HTTPCLIENT.equals(getLibrary())) {
|
||||
if (HTTPCLIENT.equals(getLibrary())) {
|
||||
supportingFiles.add(new SupportingFile("FileParameter.mustache", clientPackageDir, "FileParameter.cs"));
|
||||
typeMapping.put("file", "FileParameter");
|
||||
addRestSharpSupportingFiles(clientPackageDir, packageFolder, excludeTests, testPackageFolder, testPackageName, modelPackageDir);
|
||||
additionalProperties.put("apiDocPath", apiDocPath);
|
||||
additionalProperties.put("modelDocPath", modelDocPath);
|
||||
}
|
||||
else if (GENERICHOST.equals(getLibrary())){
|
||||
} else if (GENERICHOST.equals(getLibrary())) {
|
||||
addGenericHostSupportingFiles(clientPackageDir, packageFolder, excludeTests, testPackageFolder, testPackageName, modelPackageDir);
|
||||
additionalProperties.put("apiDocPath", apiDocPath + File.separatorChar + "apis");
|
||||
additionalProperties.put("modelDocPath", modelDocPath + File.separatorChar + "models");
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
addRestSharpSupportingFiles(clientPackageDir, packageFolder, excludeTests, testPackageFolder, testPackageName, modelPackageDir);
|
||||
additionalProperties.put("apiDocPath", apiDocPath);
|
||||
additionalProperties.put("modelDocPath", modelDocPath);
|
||||
@ -777,7 +775,7 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
List<Server> servers) {
|
||||
CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers);
|
||||
|
||||
if (!GENERICHOST.equals(getLibrary())){
|
||||
if (!GENERICHOST.equals(getLibrary())) {
|
||||
return op;
|
||||
}
|
||||
|
||||
@ -808,32 +806,32 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
return op;
|
||||
}
|
||||
|
||||
private void addTestInstructions(){
|
||||
if (GENERICHOST.equals(getLibrary())){
|
||||
additionalProperties.put("testInstructions",
|
||||
private void addTestInstructions() {
|
||||
if (GENERICHOST.equals(getLibrary())) {
|
||||
additionalProperties.put("testInstructions",
|
||||
"/* *********************************************************************************" +
|
||||
"\n* Follow these manual steps to construct tests." +
|
||||
"\n* This file will not be overwritten." +
|
||||
"\n* *********************************************************************************" +
|
||||
"\n* 1. Navigate to ApiTests.Base.cs and ensure any tokens are being created correctly." +
|
||||
"\n* Take care not to commit credentials to any repository." +
|
||||
"\n*" +
|
||||
"\n* 2. Mocking is coordinated by ApiTestsBase#AddApiHttpClients." +
|
||||
"\n* To mock the client, use the generic AddApiHttpClients." +
|
||||
"\n* To mock the server, change the client's BaseAddress." +
|
||||
"\n*" +
|
||||
"\n* 3. Locate the test you want below" +
|
||||
"\n* - remove the skip property from the Fact attribute" +
|
||||
"\n* - set the value of any variables if necessary" +
|
||||
"\n*" +
|
||||
"\n* 4. Run the tests and ensure they work." +
|
||||
"\n*" +
|
||||
"\n*/");
|
||||
"\n* Follow these manual steps to construct tests." +
|
||||
"\n* This file will not be overwritten." +
|
||||
"\n* *********************************************************************************" +
|
||||
"\n* 1. Navigate to ApiTests.Base.cs and ensure any tokens are being created correctly." +
|
||||
"\n* Take care not to commit credentials to any repository." +
|
||||
"\n*" +
|
||||
"\n* 2. Mocking is coordinated by ApiTestsBase#AddApiHttpClients." +
|
||||
"\n* To mock the client, use the generic AddApiHttpClients." +
|
||||
"\n* To mock the server, change the client's BaseAddress." +
|
||||
"\n*" +
|
||||
"\n* 3. Locate the test you want below" +
|
||||
"\n* - remove the skip property from the Fact attribute" +
|
||||
"\n* - set the value of any variables if necessary" +
|
||||
"\n*" +
|
||||
"\n* 4. Run the tests and ensure they work." +
|
||||
"\n*" +
|
||||
"\n*/");
|
||||
}
|
||||
}
|
||||
|
||||
public void addRestSharpSupportingFiles(final String clientPackageDir, final String packageFolder,
|
||||
final AtomicReference<Boolean> excludeTests, final String testPackageFolder, final String testPackageName, final String modelPackageDir){
|
||||
public void addRestSharpSupportingFiles(final String clientPackageDir, final String packageFolder,
|
||||
final AtomicReference<Boolean> excludeTests, final String testPackageFolder, final String testPackageName, final String modelPackageDir) {
|
||||
supportingFiles.add(new SupportingFile("IApiAccessor.mustache", clientPackageDir, "IApiAccessor.cs"));
|
||||
supportingFiles.add(new SupportingFile("Configuration.mustache", clientPackageDir, "Configuration.cs"));
|
||||
supportingFiles.add(new SupportingFile("ApiClient.mustache", clientPackageDir, "ApiClient.cs"));
|
||||
@ -842,10 +840,10 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
supportingFiles.add(new SupportingFile("ExceptionFactory.mustache", clientPackageDir, "ExceptionFactory.cs"));
|
||||
supportingFiles.add(new SupportingFile("OpenAPIDateConverter.mustache", clientPackageDir, "OpenAPIDateConverter.cs"));
|
||||
supportingFiles.add(new SupportingFile("ClientUtils.mustache", clientPackageDir, "ClientUtils.cs"));
|
||||
if(needsCustomHttpMethod) {
|
||||
if (needsCustomHttpMethod) {
|
||||
supportingFiles.add(new SupportingFile("HttpMethod.mustache", clientPackageDir, "HttpMethod.cs"));
|
||||
}
|
||||
if(needsUriBuilder) {
|
||||
if (needsUriBuilder) {
|
||||
supportingFiles.add(new SupportingFile("WebRequestPathBuilder.mustache", clientPackageDir, "WebRequestPathBuilder.cs"));
|
||||
}
|
||||
if (ProcessUtils.hasHttpSignatureMethods(openAPI)) {
|
||||
@ -882,8 +880,8 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
supportingFiles.add(new SupportingFile("AbstractOpenAPISchema.mustache", modelPackageDir, "AbstractOpenAPISchema.cs"));
|
||||
}
|
||||
|
||||
public void addGenericHostSupportingFiles(final String clientPackageDir, final String packageFolder,
|
||||
final AtomicReference<Boolean> excludeTests, final String testPackageFolder, final String testPackageName, final String modelPackageDir){
|
||||
public void addGenericHostSupportingFiles(final String clientPackageDir, final String packageFolder,
|
||||
final AtomicReference<Boolean> excludeTests, final String testPackageFolder, final String testPackageName, final String modelPackageDir) {
|
||||
supportingFiles.add(new SupportingFile("TokenProvider`1.mustache", clientPackageDir, "TokenProvider`1.cs"));
|
||||
supportingFiles.add(new SupportingFile("RateLimitProvider`1.mustache", clientPackageDir, "RateLimitProvider`1.cs"));
|
||||
supportingFiles.add(new SupportingFile("TokenContainer`1.mustache", clientPackageDir, "TokenContainer`1.cs"));
|
||||
@ -952,7 +950,7 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
this.optionalEmitDefaultValuesFlag = flag;
|
||||
}
|
||||
|
||||
public void setConditionalSerialization(boolean flag){
|
||||
public void setConditionalSerialization(boolean flag) {
|
||||
this.conditionalSerialization = flag;
|
||||
}
|
||||
|
||||
@ -970,12 +968,13 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
this.packageName = packageName;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets the api name. This value must be a valid class name.
|
||||
*
|
||||
* @param apiName The api name
|
||||
*/
|
||||
*/
|
||||
public void setApiName(String apiName) {
|
||||
if (!"".equals(apiName) && (Boolean.FALSE.equals(apiName.matches("^[a-zA-Z0-9_]*$")) || Boolean.FALSE.equals(apiName.matches("^[a-zA-Z].*")))){
|
||||
if (!"".equals(apiName) && (Boolean.FALSE.equals(apiName.matches("^[a-zA-Z0-9_]*$")) || Boolean.FALSE.equals(apiName.matches("^[a-zA-Z].*")))) {
|
||||
throw new RuntimeException("Invalid project name " + apiName + ". May only contain alphanumeric characaters or underscore and start with a letter.");
|
||||
}
|
||||
this.apiName = apiName;
|
||||
@ -1000,8 +999,8 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
|
||||
throw new IllegalArgumentException("Invalid .NET framework version: " +
|
||||
dotnetFramework + ". List of supported versions: " +
|
||||
frameworkStrategies.stream()
|
||||
.map(p -> p.name)
|
||||
.collect(Collectors.joining(", ")));
|
||||
.map(p -> p.name)
|
||||
.collect(Collectors.joining(", ")));
|
||||
} else {
|
||||
this.targetFramework = dotnetFramework;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user