ASP.NET Core-Versionierung, UrlSegmentApiVersionReader, Routen stimmen mit unsinnigen Versionsnummern übereinC#

Ein Treffpunkt für C#-Programmierer
Guest
 ASP.NET Core-Versionierung, UrlSegmentApiVersionReader, Routen stimmen mit unsinnigen Versionsnummern überein

Post by Guest »

Ich verwende die ASP-Versionierungsbibliothek, um einen ASP.NET Core-Web-API-Controller in einem Mikrodienst zu versionieren.

Code: Select all

using Asp.Versioning;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding;

[ApiController]
[ApiVersion("1")]
[ControllerName("example")]
[Route("v{version:apiVersion}/[controller]")]
In diesem Controller habe ich einige Aktionen definiert, z.B. eine, um die Version zu erhalten:

Code: Select all

[HttpGet("version")]
[Produces("text/plain")]
[ProducesResponseType(StatusCodes.Status200OK)]
public IActionResult GetVersion() => ...
Wenn ich einen Curl GET-Vorgang mit einer beliebigen Versionsnummer ausführe, erhalte ich die passende Route für die Version. In gewisser Weise ist dies nicht überraschend, da ich für die Aktion ein versionneutrales Matching verwende. Da die Controller-Route jedoch nur eine [ApiVersion] von 1 hat, habe ich erwartet, dass jede andere nicht deklarierte Versionsnummer zu „404 nicht gefunden“ führt.

Code: Select all

curl -X GET http://localhost:8127/v1/system/version
0.0.0.0%
curl -X GET http://localhost:8127/v1337/system/version
0.0.0.0%
Habe ich das falsch konfiguriert? Ist es möglich, nicht deklarierte Versionen abzulehnen statt abzugleichen? Mit UrlSegmentApiVersionReader ist der Standardwert (und wird standardmäßig angenommen) für meinen Code nicht angegeben, da alle Versionen explizit für URL-Versionen bereitgestellt wurden.

Code: Select all

services.AddApiVersioning(opt =>
{
opt.ApiVersionReader = new UrlSegmentApiVersionReader();
}).AddApiExplorer(opt =>
{
opt.GroupNameFormat = "'v'V";
});
Ich habe das hier unter „ASP.NET Core mit MVC (Core)“ bereitgestellte Beispiel befolgt.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post