net core Webapi基礎(chǔ)工程搭建(三)——在線接口文檔Swagger

前言

前后分離的好處,就是后端埋頭做業(yè)務(wù)邏輯功能,不需要過多考慮用戶體驗,只專注于數(shù)據(jù)、性能開發(fā),對于前端需要的數(shù)據(jù)可以通過組Json或者其他方式回調(diào),但是前后兩端需要確定好接口Api的規(guī)范,并且前端如果需要查看接口的相關(guān)信息,就需要文檔的支撐了。那么問題來了,后端在開發(fā)過程中每次改動接口,都需要改動文檔,累不累。

Swagger

Swagger作為一個在線文檔,通過后端的接口控制器生成一套Json串?dāng)?shù)據(jù),實時展示后端的接口請求地址,參數(shù),類型以及回調(diào),很好的解決這個問題(后端可以給前端一個Swagger的地址,然后來句你自己看吧,當(dāng)然還是需要多溝通的),這個在Java里用過之后,就馬上看看有沒有.net的版本,果然,語言都是相通的,廢話不多說,開始第三方類庫的引用

NuGet引用第三方類庫

工具->NuGet包管理器->管理解決方案的NuGet程序包...
瀏覽中查找"Swashbuckle.AspNetCore",選擇項目工程,點擊安裝。

第三方引入

引入完成后,在Startup.cs文件ConfigureServices中,加入以下代碼:

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            
           #region Swagger
            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new Info
                {
                    Version = "v1.1.0",
                    Title = "April WebAPI",
                    Description = "后臺框架",
                    TermsOfService = "None",
                    Contact = new Contact { Name = "Blank", Email = "1829027193@qq.com", Url = "http://www.aprilblank.com" }
                });
            });
            #endregion 
        }

在Startup.cs類里編輯Configure方法,加入以下代碼:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
           …
           
            #region Swagger
            app.UseSwagger();
            app.UseSwaggerUI(options =>
            {
                options.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1");
            });
            #endregion

            app.UseHttpsRedirection();
            app.UseMvc();
        }

重新生成工程后,訪問你的端口/swagger就可以看到接口文檔幫助界面了。


Swagger

別急,還有

在線的接口文檔是有了,可一個接口啥意思都不知道,前端還是得一臉懵逼問你,這個接口啥意思啊,這個參數(shù)啥意思啊什么的。

沒錯,注釋

還是在Startup.cs文件ConfigureServices中,加入以下代碼:

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            #region Swagger
            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new Info
                {
                    Version = "v1.1.0",
                    Title = "April WebAPI",
                    Description = "后臺框架",
                    TermsOfService = "None",
                    Contact = new Contact { Name = "Blank", Email = "790048789@qq.com", Url = "http://www.aprilblank.com" }
                });
                
                // 為 Swagger JSON and UI設(shè)置xml文檔注釋路徑
                var basePath = Path.GetDirectoryName(AppContext.BaseDirectory);//獲取應(yīng)用程序所在目錄(絕對,不受工作目錄影響,建議采用此方法獲取路徑)
                var xmlPath = Path.Combine(basePath, "April.xml");
                options.IncludeXmlComments(xmlPath);
                
            });
            #endregion
        }

右鍵WebApi這個項目工程,點擊屬性,在生成這一欄

生成XML文檔

先拿Values這個控制器做實驗


Values

重新生成后會在對應(yīng)目錄看到有Apirl.xml文檔文件,運行之后查看/Swagger


Swagger

點開剛才單獨注釋參數(shù)的/api/Values/{id}
Swagger

小結(jié)

一個WebApi工程離不開文檔,而一個在線文檔可以省掉自己很多事,并且Swagger也支持在線調(diào)試,雖說我自己還是傾向于Postman(后續(xù)會介紹相關(guān)工具),這個在線文檔不僅是方便了前端查看,總之在開發(fā)上確實是一個利器。

下一篇,介紹后臺核心之一,Log日志。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容