Open prajon84 opened 3 years ago
When a Model object has oneOf properties. And, out of those oneOf, one of them is an array of string, then the generated client code has syntax error.
master @ https://github.com/OpenAPITools/openapi-generator/commit/e600f7d149df999c7a549ba0b467658f87e0acec
openapi: 3.0.3 info: title: C# Object with oneof array of string version: v1 paths: '/hello': get: responses: '200': description: returns compared object content: application/json: schema: $ref: '#/components/schemas/Compare' components: schemas: Compare: description: Comparison information oneOf: - type: number - type: array items: type: string
See steps below.
>openapi-generator generate -g csharp-netcore -i openapi.yaml --library httpclient -o out/csharp_oneof_array_string_issue --model-package Model --api-package Api >cd out/csharp_oneof_array_string_issue >dotnet build --configuration Release
produces:
C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,37): error CS1001: Identifier expected [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj] C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,37): error CS1003: Syntax error, '>' expected [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj] C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,37): error CS1003: Syntax error, '(' expected [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj] C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,43): error CS1001: Identifier expected [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj] C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,43): error CS1003: Syntax error, ',' expected [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj] C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,44): error CS1003: Syntax error, ',' expected [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj] C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,45): error CS8124: Tuple must contain at least two elements. [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj] C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,46): error CS1001: Identifier expected [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj] C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Model\Compare.cs(95,46): error CS1026: ) expected [C:\Projects\ssh_clone\out\csharp_oneof_array_string_issue\src\Org.OpenAPITools\Org.OpenAPITools.csproj]
Which if I open in VS:
And, the generator template for this code is: https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/csharp-netcore/modelOneOf.mustache#L61-L69
None that I could find.
May be update the above openapi-generator template method for case of array of string i.e. List<string>
List<string>
@wing328 @lucamazzanti @Blackclaws @shibayan @frankyjuang @mandrean @devhl-labs @jfeltesse-mdsol
Similar is the case with modelAnyOf -> https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/csharp-netcore/modelAnyOf.mustache#L61-L70
Bug Report Checklist
Description
When a Model object has oneOf properties. And, out of those oneOf, one of them is an array of string, then the generated client code has syntax error.
openapi-generator version
master @ https://github.com/OpenAPITools/openapi-generator/commit/e600f7d149df999c7a549ba0b467658f87e0acec
OpenAPI declaration file content or url
Generation Details
See steps below.
Steps to reproduce
produces:
Which if I open in VS:
And, the generator template for this code is: https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/csharp-netcore/modelOneOf.mustache#L61-L69
Related issues/PRs
None that I could find.
Suggest a fix
May be update the above openapi-generator template method for case of array of string i.e.
List<string>
@wing328 @lucamazzanti @Blackclaws @shibayan @frankyjuang @mandrean @devhl-labs @jfeltesse-mdsol