Yo Akarapol Imphrom
Yo Akarapol Imphrom

Reputation: 55

Swagger not loading - Failed to load API definition: error undefined message

As I tried to change one public method to private. The issue will be gone.

But when I defined the public method on both method as the below controller code, it will bring up the error.

Anyone help/advice if possible would be really appreciate

WEBLABController.cs

[Route("api/SearchLABResults")]
    [HttpPost]
    public async Task<IActionResult> SearchLABResults([FromBody] SP_GET_LABResult_Overview.input data)
    {
        IActionResult response = Unauthorized();
        ......
        return response;
    }

AuthenticationController.cs

[Route("api/GenerateToken")]
    [HttpPost]
    public async Task<IActionResult> GenerateToken([FromBody] AuthenticationModel.input data)
    {
        IActionResult response = Unauthorized();
        ......
        return response;
    }

Upvotes: 1

Views: 976

Answers (1)

MrMoeinM
MrMoeinM

Reputation: 2378

If you scroll down the swagger view, You see that every model you are using is shown there. Swagger needs that those names be unique.

SP_GET_LABResult_Overview.input and AuthenticationModel.input are both generate input schema and that cause InvalidOperationException.

Try to change one of the input classes to something else or change their schema on the fly like this.

services.AddSwaggerGen(options =>
{
    options.CustomSchemaIds(type => type.ToString());
});

Upvotes: 2

Related Questions