Skip to content

Paths /v1.1/ and /v11/ collide #7143

@esd-thg

Description

@esd-thg

What are you generating using Kiota, clients or plugins?

API Client/SDK

In what context or format are you using Kiota?

Nuget tool

Client library/SDK language

Csharp

Describe the bug

When generating a client with versions in paths, then 1.1 and 11 collide.

/v1.1/tests
/v11/tests

Because 1.1 becomes 11. This causes one of the endpoints to be overwritten, I think this is related to the order they appear in the openapi spec - not tested

This result in a generated client that only has

client.V11.Tests.GetAsync();

Expected behavior

The client should have both v1.1 and v11 endpoints

How to reproduce

  1. dotnet kiota generate -l CSharp -d <provided openapi> --exclude-backward-compatible --clean-output
  2. observe generated output
    • doesn't have a v1.1
    • it does have a v11
    • v11 is actually v1.1
    • so the real v11 is missing

Open API description file

openapi: 3.0.1
info:
  title: Test
  version: 1.0.0
paths:
  /v1.1/tests:
    get:
      tags: [v1.1]
      responses:
        "200":
          description: Hello from v1.1
          content:
            text/plain:
              schema:
                type: string
  /v11/tests:
    get:
      tags: [v11]
      responses:
        "200":
          description: Hello from v11
          content:
            application/json:
              schema:
                type: number

Kiota Version

1.29.0

Latest Kiota version known to work for scenario above?(Not required)

No response

Known Workarounds

No response

Configuration

No response

Debug output

Click to expand log ```
</details>


### Other information

_No response_

Metadata

Metadata

Assignees

No one assigned

    Labels

    CsharpPull requests that update .net codestatus:waiting-for-triageAn issue that is yet to be reviewed or assignedtype:bugA broken experience

    Type

    No type

    Projects

    Status

    Needs Triage 🔍

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions