簡體   English   中英

向 controller 添加新方法會使 swagger 出現 500 錯誤

[英]adding new method to controller makes swagger give 500 error

所以我制作 api 已經有一段時間了。現在我再次查看它,我試圖簡單地向 WeatherForecastController 添加一個 get 方法。 但是添加后我一直收到 swagger 錯誤。 該方法看起來與現有方法非常相似。 只是這個使用了一個參數。 但在添加它之后,我的瀏覽器中一直出現錯誤。 我不確定為什么。 我已經很久沒有這樣做了。 我以前從未使用過 swagger。 在此處輸入圖像描述

請注意,我只是創建了項目並添加了我所做的所有方法。 這是瀏覽器錯誤。

在此處輸入圖像描述

嘗試這個;

[HttpGet("GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
    return Enumerable.Range(1, 5).Select(index => new WeatherForecast
    {
        Date = DateTime.Now.AddDays(index),
        TemperatureC = Random.Shared.Next(-20, 55),
        Summary = Summaries[Random.Shared.Next(Summaries.Length)]
    })
    .ToArray();
}

[HttpGet("GetNumberOfForecasts/{amount}")]
public IEnumerable<WeatherForecast> GetAmount(int amount)
{
    return Enumerable.Range(1, amount).Select(index => new WeatherForecast
    {
        Date = DateTime.Now.AddDays(index),
        TemperatureC = Random.Shared.Next(-20, 55),
        Summary = Summaries[Random.Shared.Next(Summaries.Length)]
    })
    .ToArray();
}

僅供日后參考。

第 1 步:-> 打開您的開發工具,或按 F12。

      Then open the network tab, and refresh your page.

在此處輸入圖像描述

第 2 步:> 單擊 swagger 調用並單擊響應選項卡。

你會看到你的錯誤:

Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException:用於操作的沖突方法/路徑組合“GET WeatherForecast” - WebApplication1.Controllers.WeatherForecastController.Get (WebApplication1)、WebApplication1.Controllers.WeatherForecastController.GetAmount (WebApplication1)。 操作需要 Swagger/OpenAPI 3.0 的唯一方法/路徑組合。 使用 ConflictingActionsResolver 作為解決方法

在此處輸入圖像描述

嘗試這樣的路由

在此處輸入圖像描述

結果

在此處輸入圖像描述

[Route("[controller]")]更改為[Route("[controller]/[action]")]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM