aspnet-api-versioning icon indicating copy to clipboard operation
aspnet-api-versioning copied to clipboard

My API is not displaying all the versions.

Open GabrielQHDev opened this issue 1 year ago • 4 comments
trafficstars

Is there an existing issue for this?

  • [X] I have searched the existing issues

Describe the bug

In my project, I'm specifying two versions for the CountriesController controller.

I have two classes within the same namespace, one is CountriesV2Controller [ApiVersion("2.0")] and the other is CountriesController [ApiVersion("1.0")]. Both versions have the same route [Route("api/v{version:apiVersion}/countries")], so I don't understand why I have this problem.

But only version 1 is being displayed and accessible.

When I was using Microsoft.AspNetCore.Mvc.Versioning, everything worked fine, without any issues with my current configuration.

Any help is appreciated :)

Expected Behavior

I should be able to access both versions of the controller.

api-supported-versions: 1.0 , 2.0

Steps To Reproduce

No response

Exceptions (if any)

No response

.NET Version

net7.0

Anything else?

Asp.Versioning.Mvc" Version ->7.1.1 Asp.Versioning.Mvc.ApiExplorer ->Version=7.1.0

repo: https://github.com/GProGamer/HotelListing

GabrielQHDev avatar Apr 28 '24 16:04 GabrielQHDev

On the line:

https://github.com/GProGamer/HotelListing/blob/master/HotelListing.API/Program.cs#L52

you need to add .AddMvc(). Starting in API Versioning 6.0, this call is now required to bring in MVC Core. Without this call, only Minimal APIs are considered. The fact that anything works at all is a coincidence. I suspect after you add that, things will work as expected.

Note: this calls IApiVersioningBuilder.AddMvc and not IServiceCollectionBuilder.AddMvc, which does something different

commonsensesoftware avatar May 01 '24 19:05 commonsensesoftware

I've forgot to say that I've already try to add .AddMvc(). I've tried again but I'm still getting the same weird behaviour: it just shows version 1 image image image

but not version 2:

image

Help me please

GabrielQHDev avatar May 05 '24 23:05 GabrielQHDev

I browsed over the repro a little too fast. There's actually a number of things missing from your configuration that should be there. This information is provided in the wiki and example projects with OpenAPI and Swashbuckle. Ultimately, you need to use the API Explorer extensions provided by API Versioning to drive the generation of OpenAPI documents with Swashbuckle. There is no formal concept of versioning in the API Explorer, so Swashbuckle does not know how to use the information without a little help.

Since you provided a repro, you can apply the following Git patch and you should be only your way.

fix-config.patch

commonsensesoftware avatar May 06 '24 13:05 commonsensesoftware

Hi Chris. It works, I really appreciate it, thank you

GabrielQHDev avatar May 08 '24 03:05 GabrielQHDev