一、問題背景
隨著技術(shù)的發(fā)展,現(xiàn)在的開發(fā)模式已經(jīng)更多的轉(zhuǎn)向了前后端分離的模式,在前后端開發(fā)的過程中,聯(lián)系的方式也變成了API接口,但是目前項(xiàng)目中對于API的管理很多時(shí)候還是通過手工編寫文檔,每次的需求變更只要涉及到接口的變更,文檔都需要進(jìn)行額外的維護(hù),如果有哪個(gè)小伙伴忘記維護(hù),很多時(shí)候就會造成一連續(xù)的問題,那如何可以更方便的解決API的溝通問題?Swagger給我們提供了一個(gè)方式,由于目前主要我是投入在.NET Core項(xiàng)目的開發(fā)中,所以以.NET Core作為示例
二、什么是Swagger
Swagger可以從不同的代碼中,根據(jù)注釋生成API信息,swagger擁有強(qiáng)大的社區(qū),并且對于各種語言都支持良好,有很多的工具可以通過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生成文檔,如圖所示
接下去我們可以運(yùn)行起來了,調(diào)試,瀏覽器中輸入http://localhost:50510/swagger/,這里端口啥的根據(jù)實(shí)際情況來,運(yùn)行效果如下圖所示:
可以看到swagger將方法上的注釋以及實(shí)體的注釋都抓出來了,并且顯示在swaggerui,整體一目了然,并且可以通過try it按鈕進(jìn)行簡單的調(diào)試,但是在具體項(xiàng)目中,可能存在需要將某些客戶端信息通過header帶到服務(wù)中,例如token信息,用戶信息等(我們項(xiàng)目中就需要header中帶上token傳遞到后端),那針對于這種情況要如何實(shí)現(xiàn)呢?可以看下面的做法
|