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


前言

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

Swagger

Swagger作為一個在線文檔,通過后端的接口控制器生成一套Json串數據,實時展示后端的接口請求地址,參數,類型以及回調,很好的解決這個問題(后端可以給前端一個Swagger的地址,然后來句你自己看吧,當然還是需要多溝通的),這個在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

別急,還有

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

沒錯,注釋

還是在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設置xml文檔注釋路徑
                var basePath = Path.GetDirectoryName(AppContext.BaseDirectory);//獲取應用程序所在目錄(絕對,不受工作目錄影響,建議采用此方法獲取路徑)
                var xmlPath = Path.Combine(basePath, "April.xml");
                options.IncludeXmlComments(xmlPath);
                
            });
            #endregion
        }

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

生成XML文檔

先拿Values這個控制器做實驗

Values
重新生成后會在對應目錄看到有Apirl.xml文檔文件,運行之后查看/Swagger
Swagger
點開剛才單獨注釋參數的/api/Values/{id}
Swagger

小結

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM