一、問題背景
隨著技術的發展,現在的開發模式已經更多的轉向了前后端分離的模式,在前后端開發的過程中,聯系的方式也變成了API接口,但是目前項目中對于API的管理很多時候還是通過手工編寫文檔,每次的需求變更只要涉及到接口的變更,文檔都需要進行額外的維護,如果有哪個小伙伴忘記維護,很多時候就會造成一連續的問題,那如何可以更方便的解決API的溝通問題?Swagger給我們提供了一個方式,由于目前主要我是投入在.NET Core項目的開發中,所以以.NET Core作為示例
二、什么是Swagger
Swagger可以從不同的代碼中,根據注釋生成API信息,swagger擁有強大的社區,并且對于各種語言都支持良好,有很多的工具可以通過swagger生成的文件生成API文檔
三、.NET Core中使用
.NET Core中使用首先要用nuget引用Swashbuckle.AspNetCore,在startup.cs中加入如下代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddSwaggerGen(c => { c.SwaggerDoc( "v1" , new Info { csharp" id="highlighter_699906">
接下來我們還需要在生成中勾上XML生成文檔,如圖所示
接下去我們可以運行起來了,調試,瀏覽器中輸入http://localhost:50510/swagger/,這里端口啥的根據實際情況來,運行效果如下圖所示:
可以看到swagger將方法上的注釋以及實體的注釋都抓出來了,并且顯示在swaggerui,整體一目了然,并且可以通過try it按鈕進行簡單的調試,但是在具體項目中,可能存在需要將某些客戶端信息通過header帶到服務中,例如token信息,用戶信息等(我們項目中就需要header中帶上token傳遞到后端),那針對于這種情況要如何實現呢?可以看下面的做法
|