Swashbuckle/Swagger + ASP.Net Core: „API-Definition konnte nicht geladen werden“C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Swashbuckle/Swagger + ASP.Net Core: „API-Definition konnte nicht geladen werden“

Post by Anonymous »

Ich entwickle eine ASP.NET Core 2-Anwendung und füge Swagger hinzu. Alles hat gut funktioniert, bis ich eine Methode eingeführt habe, ohne die HTTP-Aktion explizit zu definieren:

Code: Select all

public class ErrorController : Controller
{
[Route("/error")]
public IActionResult Index()
{
return StatusCode(500, new Error("Internal error."));
}
}
Als ich die App mit dieser Methode startete, wurde die folgende Meldung angezeigt:

Fehler beim Laden der API-Definition.
Fehler

Abruffehler Interner Serverfehler /swagger/v1/swagger.json

Sobald ich explizit z. B. [HttpGet] Der Fehler verschwindet. Das Problem dabei ist, dass ich diese Methode für alle möglichen HTTP-Vorgänge auslösen muss.
Natürlich könnte ich alle Vorgänge explizit angeben, aber ich habe das Gefühl, dass Swagger in der Lage sein sollte, damit richtig umzugehen.
Warum verhält sich Swagger so?
Gibt es eine Konfiguration, die ich verwenden kann?

Code: Select all

services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My Service", Version = "v1" });
});

app.UseSwagger(c =>
{
c.PreSerializeFilters.Add((swagger, httpReq) => swagger.Host = httpReq.Host.Value);
});

app.UseSwaggerUI(c =>
{
c.RoutePrefix = "swagger"; // serve the UI at root
c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs");
})

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post