NSwag icon indicating copy to clipboard operation
NSwag copied to clipboard

int array parameter issue

Open MoeHamdan opened this issue 11 months ago • 4 comments

Hello

I have an action in controller that have array parameter with the following signature. Task<IEnumerable<ChildBasic>> GetChildrenBasicInfo([FromRoute] int[] childrenIds) Version 14 of NwagStudio has a problem generating the client it is generating as follows:

` public virtual async System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<ChildBasic>> GetChildrenBasicInfoAsync(System.Collections.Generic.IEnumerable childrenIds, System.Threading.CancellationToken cancellationToken) { if (childrenIds == null) throw new System.ArgumentNullException("childrenIds");

        var client_ = _httpClient;
        var disposeClient_ = false;
        try
        {
            using (var request_ = new System.Net.Http.HttpRequestMessage())
            {
                request_.Method = new System.Net.Http.HttpMethod("GET");
                request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

                var urlBuilder_ = new System.Text.StringBuilder();
            
                // Operation Path: "api/v2/Children/children-basic/{childrenIds}"
                urlBuilder_.Append("api/v2/Children/children-basic/");
                for (var i = 0; i < childrenIds.Length; i++)
                {
                    if (i > 0) urlBuilder_.Append(',');
                    urlBuilder_.Append(ConvertToString(childrenIds[i], System.Globalization.CultureInfo.InvariantCulture));
                }

`

It is using IEnumerable as parameter and then using ".Length" against it, the IEnumerable does not have .Length property.

Kindly advise.

MoeHamdan avatar Mar 28 '24 12:03 MoeHamdan

@RicoSuter may you please help our APIs are broken now.

MoeHamdan avatar Apr 01 '24 13:04 MoeHamdan

Hi,

I noticed the same issue. Here is a snap of how the generated code has changed between versions: image

jacekcendrzak avatar Apr 08 '24 07:04 jacekcendrzak

Hi,

I've noticed the same and cant get around it with any settings or options. Looks to me like a small oversight, and this should be breaking everybody's clients right? As long as they use lists/collections/arrays somewhere in their API...

Hoping it will be fixed soon.

In the 13.20 release this works though.

Nergy101 avatar Apr 18 '24 08:04 Nergy101

This is broken on our side too, seems like major bug to not be adressed asap

Myliak avatar Apr 30 '24 09:04 Myliak