Swagger zeigt in der Benutzeroberfläche keine v2-Daten an, ohne dass eine Änderung möglich ist [geschlossen]C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Swagger zeigt in der Benutzeroberfläche keine v2-Daten an, ohne dass eine Änderung möglich ist [geschlossen]

Post by Anonymous »

Ich führe gerade eine Versionierung in meiner Minimal-API für .NET 8 ein und bin auf ein kleines Problem gestoßen.
Meine Dokumentation lädt das V2-API-Dokument nicht in Swagger, wenn ich die Anwendung ausführe.
Ich habe dieses Swagger-Setup:

Code: Select all

 app.UseSwaggerUI(
options =>
{
var descriptions = app.DescribeApiVersions();

// build a swagger endpoint for each discovered API version
foreach (var description in descriptions)
{
var url = $"/swagger/{description.GroupName}/swagger.json";
var name = description.GroupName.ToUpperInvariant();
options.SwaggerEndpoint(url, name);
}
});
Und noch etwas weiter: Ich habe meine Versionierung so eingerichtet, dass sie die URL-Versionierung verwendet (das ist derzeit die Richtlinie, die in Ordnung ist):

Code: Select all

builder.Services.AddApiVersioning(options =>{
options.AssumeDefaultVersionWhenUnspecified = false;
options.ReportApiVersions = true;
options.ApiVersionReader = new UrlSegmentApiVersionReader();
}).AddApiExplorer(options =>
{
options.GroupNameFormat = "'v'VVV";
options.SubstituteApiVersionInUrl = true;
});
Zu Testzwecken habe ich v2 in der URL dieser Erweiterung fest codiert, aber dadurch wird die Gruppe erstellt (die einzelnen Zuordnungen werden anschließend für jede Datei hinzugefügt):
private static RouteGroupBuilder MapGroup(diese WebApplication-App, EndpointGroupBase-Gruppe)
{
var groupName = group.GroupName ?? group.GetType().Name;

Code: Select all

 return app.NewVersionedApi()
.MapGroup($"/api/v{group.MajourVersion}/{groupName}")
.WithOpenApi()
.WithTags(groupName);}
Mein Problem hier ist nicht, dass es nicht hinzugefügt wird. Wenn ich zur Laufzeit zu v2/swagger.json navigiere, erhalte ich die Versionsdatei mit der darin enthaltenen Definition in Ordnung, aber auf /swagger wird nur die Version 1 geladen und es gibt keine Möglichkeit, zur Version 2 zu wechseln, um die erstellten Endpunkte anzuzeigen:
Image

Es gibt dort keine Version 2, weder im Dropdown-Menü oben noch in der Liste links.
Was fehlt mir?
Bearbeiten
Ich habe die angeforderten Codeblöcke anstelle von Bildern hinzugefügt. Außerdem habe ich bei jedem Schritt bestätigt (auch beim Hinzufügen der Swagger-Dokumente im ersten Block), dass zwei Dokumente hinzugefügt werden. Sie werden einfach weder in den Definitionen noch auf der Startseite angezeigt. Ich kann Version 2 anzeigen lassen, wenn es keine Version 1 gibt, aber niemals beides

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post