Swashbuckle/Swagger + ASP.Net Kern: "Fehler beim laden der API-definition"

Entwickle ich eine ASP.NET Core-2-Anwendung und enthalten Stolzieren. Alles funktionierte gut, bis ich eingeführt, eine Methode, die ohne explizit definieren Sie die HTTP-Aktion:

public class ErrorController : Controller
{
    [Route("/error")]
    public IActionResult Index()
    {
        return StatusCode(500, new Error("Internal error."));
    }
}

Wenn ich die app mit dieser Methode, wird die folgende Meldung auftauchte:

Fehler beim laden der API-definition.

Fehler
Fetch-Fehler Interner Server-Fehler /swagger/v1/swagger.json

Sobald ich explizit festlegen, z.B. [HttpGet] der Fehler verschwindet. Das problem dabei ist, ich brauche diese Methode, um Feuer für alle möglichen HTTP-Operationen.
Natürlich, ich könnte angeben, alle Operationen, die ausdrücklich, aber ich habe das Gefühl, Swagger sollte in der Lage sein, dies richtig verarbeiten.

Warum kommt Swagger auf diese Weise Verhalten?

Gibt es eine Konfiguration, die ich verwenden kann?

"Ich brauche diese Methode, um Feuer für alle möglichen HTTP-Operationen" warum werden Sie brauchen, um alle Methoden, anstatt nur BEKOMMEN?
Können Sie teilen Sie Ihre Swashbuckle-Konfiguration?
in diesem Fall ist der Error Endpunkt verwendet, da der exception-handler. Abhängig von der HTTP-Betrieb der Anfrage, die gemäß Vorgang auf der Error Endpunkt genannt.
die config ist ziemlich straight-forward: 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"); });
Ich es geschafft, reproduzieren das Problem, sieht aus wie ein Bug in der Swashbuckle.AspNetCore, die ResolveConflictingActions sollte funktionieren

InformationsquelleAutor Ash | 2018-05-07

Schreibe einen Kommentar