一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - 從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

2023-05-08 00:02未知服務(wù)器之家 ASP.NET教程

傳送門:從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(一) 一、設(shè)置Swagger頁面為首頁——開發(fā)環(huán)境 我們雖然可以在輸入 /swagger 后順利的訪問 Swagger UI 頁面,但是我們發(fā)現(xiàn)每次運(yùn)行項(xiàng)目都會(huì)默認(rèn)訪問 /weatherforecast 這個(gè)

傳送門:從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(一)

一、設(shè)置Swagger頁面為首頁——開發(fā)環(huán)境

我們雖然可以在輸入 /swagger 后順利的訪問 Swagger UI 頁面,但是我們發(fā)現(xiàn)每次運(yùn)行項(xiàng)目都會(huì)默認(rèn)訪問 /weatherforecast 這個(gè)接口,想要將啟動(dòng)頁設(shè)為 /swagger (或者其他頁面)就需要用到配置文件 launchSettings.json。

在如下圖中所示的位置找到并打開 launchSettings.json 文件,在如下圖中所示的地方修改“l(fā)aunchUrl”屬性(有該屬性則修改,無該屬性則手動(dòng)添加)的值由“weatherforecast”為“swagger”并保存,再一次按 F5 鍵運(yùn)行項(xiàng)目就會(huì)發(fā)現(xiàn)直接訪問的地址為“https://localhost:44390/swagger”。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

二、設(shè)置Swagger頁面為首頁——生產(chǎn)環(huán)境

上述方法在本地調(diào)試可以直接運(yùn)行,但是如果部署到服務(wù)器,就會(huì)發(fā)現(xiàn)之前的那種默認(rèn)啟動(dòng)首頁無效了,還是需要每次手動(dòng)在域名后邊輸入“/swagger”。

幸運(yùn)的是,Swagger 提供了一個(gè)擴(kuò)展,可以指定一個(gè)空字符作為 Swagger 的地址。在 Startup.cs 文件的 Startup 類的 Configure 方法中配置中間件,如下圖所示,代碼如下所示。

            #region Swagger
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/DocV1/swagger.json", "DocV1");//此為之前配置內(nèi)容
                c.RoutePrefix = "";//此為本次新增配置項(xiàng)
            });
            #endregion

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

然后把配置文件 launchSettings.json 的 launchUrl 屬性注釋或刪除,如下圖所示,這樣無論是本地開發(fā)環(huán)境還是生產(chǎn)環(huán)境,都可以默認(rèn)加載 Swagger UI 頁面了。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

三、添加注釋

1、給接口添加注釋

首先給接口方法加上注釋:打開默認(rèn)生成的 WeatherForecast 控制器,分別給控制器和接口添加注釋,代碼如下所示。

    /// <summary>
    /// 天氣預(yù)報(bào)
    /// </summary>
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
        };

        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        /// <summary>
        /// 獲取天氣
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {
            var rng = new Random();
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = rng.Next(-20, 55),
                Summary = Summaries[rng.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }

添加好注釋之后,接下來就需要把注釋信息顯示在 Swagger 中,這時(shí)候需要用到 XML 文檔,因?yàn)樗峭ㄟ^ XML 來維護(hù) Swagger 文檔的一些信息。

鼠標(biāo)右鍵單擊項(xiàng)目名稱,在彈出的菜單中選擇“屬性”選項(xiàng),在屬性選項(xiàng)卡頁面中的“生成”選項(xiàng)的“輸出”選項(xiàng)的“文檔文件”選項(xiàng)下,勾選“生成包含API文檔的文件”選擇框,“XML 文檔文件路徑”此處使用默認(rèn)位置,故保留為空,如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

重新編譯項(xiàng)目后,系統(tǒng)會(huì)在 bin\Debug\net5.0 路徑下默認(rèn)生成一個(gè)與項(xiàng)目名稱相同的 XML 文件,前后對比如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

接下來修改 Swagger 服務(wù)注入的代碼。在 Startup.cs 文件的 Startup 類的 ConfigureServices 方法中進(jìn)行修改,代碼如下所示。

            #region Swagger
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("DocV1", new OpenApiInfo
                {
                    Version = "v0.1.0",
                    Description = "一個(gè)Swagger教程文檔",
                    Contact = new OpenApiContact
                    {
                        Name = "張歐昊辰",
                        Email = "[email protected]"

                    }
                });


                #region 添加注釋新增內(nèi)容
                var basePath = AppContext.BaseDirectory;
                var projectName = AppDomain.CurrentDomain.FriendlyName;
                var xmlPath = Path.Combine(basePath, projectName + ".xml");
                c.IncludeXmlComments(xmlPath, true);
                #endregion

            });
            #endregion

然后按 F5 啟動(dòng)項(xiàng)目,這樣控制器和接口注釋就都有了,前后對比效果如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

2、給Model添加注釋

新建一個(gè)類庫,取名為“AllTestDemo.Model”,步驟如下圖所示,不再做過多文字?jǐn)⑹觥?/p>

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

當(dāng)類庫創(chuàng)建成功后,我們將“AllTestDemo”下的“WeatherForecast.cs”文件移動(dòng)到新建的類庫“AllTestDemo.Model”下,修改命名空間并添加上注釋,如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

我們按照上一小節(jié)中給“AllTestDemo”添加 XML 文檔的方法,同樣給“AllTestDemo.Model”添加 XML 文檔。然后回到 Startup.cs 文件的 Startup 類的 ConfigureServices 方法中進(jìn)行修改,代碼如下所示。

                var xmlModelPath = Path.Combine(basePath, "AllTestDemo.Model.xml");
                c.IncludeXmlComments($"{xmlModelPath}", true);

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

重新編譯項(xiàng)目后,按 F5 啟動(dòng)項(xiàng)目,這樣 Model 注釋就有了,前后對比效果如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

四、去掉 Swagger 警告提示

添加 Swagger 包之后,控制器不填寫相應(yīng)的注釋,項(xiàng)目會(huì)有很多警告,打開錯(cuò)誤列表查看,如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

如果我們不想添加注釋,又不想看到這個(gè)警告提示,可以這樣做。

打開“AllTestDemo”的屬性面板,在“生成”選項(xiàng)的“錯(cuò)誤和警告”選項(xiàng)的“取消顯示警告”選項(xiàng)下,添加“;1591”并保存,注意1591前面有分號且是英文輸入法狀態(tài)下輸入的,如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

“重新生成解決方案”后,我們看到錯(cuò)誤列表中“AllTestDemo”項(xiàng)目下的警告已經(jīng)沒有了,仍然能看到“AllTestDemo.Model”項(xiàng)目下的警告信息,如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

我們可按照上述同樣的方法,對“AllTestDemo.Model”進(jìn)行相同的處理即可。

五、忽略接口信息

如果我們不想展示某個(gè)控制器中全部或部分接口的信息,可以在 Controller? 上或者 Action 上添加 [ApiExplorerSettings(IgnoreApi = true)] 特性來忽略。

1、不添加特性

為了展示效果,在?WeatherForecastController 中添加了一個(gè) POST 訪問類型的方法,代碼如下所示。

        [HttpPost]
        public void Index()
        {
        }

此時(shí) Swagger UI 顯示結(jié)果如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

2、在 Action 上添加特性

我們在系統(tǒng)自動(dòng)生成的 Get 方法上添加 [ApiExplorerSettings(IgnoreApi = true)] 特性,如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

按 F5 鍵項(xiàng)目啟動(dòng)后 Swagger UI 顯示如下圖所示,對比不添加特性的顯示結(jié)果,我們發(fā)現(xiàn) Get 類型的方法未展示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

3、在 Controller 上添加特性

我們在系統(tǒng)自動(dòng)生成的 WeatherForecastController 上添加 [ApiExplorerSettings(IgnoreApi = true)] 特性,如下圖所示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

按 F5 鍵項(xiàng)目啟動(dòng)后 Swagger UI 顯示如下圖所示,對比不添加特性的顯示結(jié)果,我們發(fā)現(xiàn)沒有接口信息展示。

從0到1手把手教你ASP.NET Core Web API項(xiàng)目配置接口文檔Swagger(二)

-------------------------------本篇文章到此結(jié)束-------------------------------------

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产在线成人精品 | 九九久久精品 | 草草视频免费看 | fc2免费人成为视频 eeuss18影院www国产 | 描写细腻的高h肉 | 亚洲精品视频免费在线观看 | 国产精品麻豆免费版 | 97国产蝌蚪视频在线观看 | 奇米影视在线观看 | 男人天堂日韩 | 日韩精品久久不卡中文字幕 | 无人区免费一二三四乱码 | 国产一级片免费视频 | 久久影院中文字幕 | 第四色男人天堂 | 欧美亚洲第一区 | 大胆人gogo888体艺术在线 | 亚洲国产综合自在线另类 | 国产高清在线视频一区二区三区 | 日本在线视频免费看 | 全肉一女n男np高h乳 | 午夜香蕉成视频人网站高清版 | 18hdxxxx日本护士 | 国产精品亚洲午夜不卡 | 亚洲四虎永久在线播放 | 国产成人激情 | 鞋奴的视频VK | 日本高清视频在线的 | 农村妇女野战bbxxx农村妇女 | 禁漫H天堂免费A漫 | 奇米888在线看奇米999 | 国产成人精品s8sp视频 | 俄罗斯一级成人毛片 | 亚洲人成综合在线播放 | 亚洲网色 | 污网站免费观看在线高清 | 91视频一区 | 日韩亚洲一区中文字幕在线 | 国产欧美精品 | 日本高清中文字幕一区二区三区 | 加勒比一本大道在线 |