1. 程式人生 > >從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之三 || Swagger的使用 3.1

從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之三 || Swagger的使用 3.1

更新

經常有小夥伴遇到這個錯誤

這是因為介面json文件定義和呼叫不是一個

1、定義:

ConfigureServices 方法中的  services.AddSwaggerGen 註冊的一個名字 c.SwaggerDoc("v1", 

2、呼叫:

Configure 方法中的 app.UseSwaggerUI(c =>   呼叫  c.SwaggerEndpoint("/swagger/v1/swagger.js;

看看兩者是否一致

WHY

上文中已經說到,單純的專案介面在前後端開發人員使用是特別不舒服的,那所有要推薦一個,既方便又美觀的介面文件說明框架,噹噹噹,就是Swagger,隨著網際網路技術的發展,現在的網站架構基本都由原來的後端渲染,變成了:前端渲染、後端分離的形態,而且前端技術和後端技術在各自的道路上越走越遠。 

前端和後端的唯一聯絡,變成了API介面;API文件變成了前後端開發人員聯絡的紐帶,變得越來越重要,swagger就是一款讓你更好的書寫API文件的框架。

沒有API文件工具之前,大家都是手寫API文件的,在什麼地方書寫的都有,有在confluence上寫的,有在對應的專案目錄下readme.md上寫的,每個公司都有每個公司的玩法,無所謂好壞。

書寫API文件的工具有很多,但是能稱之為“框架”的,估計也只有swagger了。 

HOW

下面開始引入swagger外掛

方法有兩個:

1)可以去swagger官網或github上下載原始碼,然後將原始碼(一個類庫)引入自己的專案;

2)直接利用NuGet包新增程式集應用(這裡就是前邊說的 在以後的開發中,Nuget無處不在)。

右鍵專案中的 Dependencies -- > Manage Nuget Packags --> Browse --> Search "Swashbuckle.AspNetCore" --> Install

 

然後就在專案的Nuget依賴裡看到剛剛引入的Swagger
圖 2

這個時候,你可以試一下,當然是不可以的,還記得上文說的,.Net Core 都需要一個程式入口麼,對就是Startup.cs檔案

1、開啟Startup.cs類,編輯ConfigureServices類

     public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            #region Swagger
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info
                {
                    Version = "v0.1.0",
                    Title = "Blog.Core API",
                    Description = "框架說明文件",
                    TermsOfService = "None",
                    Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "Blog.Core", Email = "[email protected]", Url = "https://www.jianshu.com/u/94102b59cc2a" }
                });
            });

            #endregion

        }

2、編輯Configure類

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            #region Swagger
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1");
            });
            #endregion

            app.UseMvc();
        }

3、到這,已經完成swagger的新增,F5 執行除錯,在域名後面輸入/swagger,http://localhost:54067/swagger/index.html 點選回車,噹噹噹 出來啦


圖 3
圖 4

既美觀又快捷,這樣以後釋出出去,前後端開發人員就可以一起開發了,嗯!不錯!

WHAT

  好啦,本節基本就是這裡了,你簡單瀏覽後,會了解到,什麼是Swagger,它如何建立使用,如何執行的,但是,細心的你會發現一些問題

NEXT

如何直接F5執行,首頁無法載入?

介面雖有,但是卻沒有文字文件說明?

對於介面是如何加許可權驗證的?

如何釋出到伺服器,大家一起介面開發呢?

專案開發中的實體類是如何在Swagger中展示的?

讓我們帶著這些問題,繼續瀏覽下一篇吧,Swagger 3.2 配置

ღ 網友反饋ღ

@提出:可以將Swagger的UI頁面配置在Configure的開發環境之中

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


            app.UseMvc();
        }

CODE