一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

003 在.Net Core 中使用 Swagger

 印度阿三17 2020-05-02
ASP.NET CoreWeb ApiSwagger

引出問(wèn)題

有的時(shí)候我們編寫了一個(gè)API項(xiàng)目,但是沒(méi)有太多時(shí)間來(lái)編寫接口文檔,這個(gè)時(shí)候會(huì)增加與消費(fèi)者(API)調(diào)用者的溝通成本,這個(gè)時(shí)候Swagger的使用就很有必要了.

在Asp .Net Core Web API 中使用Swagger

  1. 在WebApi,所在的項(xiàng)目中,通過(guò)Nuget安裝SwashBuckle.AspNetCore包,此包依賴如下包:

    • SwashBuckle.AspNetCore.Swagger

    • SwashBuckle.AspNetCore.SwaggerGen

    • SwashBuckle.AspNetCore.SwaggerUI

    • SwashBuckle.AspNetCore.ApiDescription.Server

  2. Startup.cs類的ConfigureServices方法中配置如下注入:

services.AddSwaggerGen(options =>
{
    options.SwaggerDoc("v1", new OpenApiInfo { Title = "WebAPI項(xiàng)目的含義名稱", Version = "v1" });
    //添加中文注釋
    var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
    var commentsFileName = typeof(Program).Assembly.GetName().Name   ".XML";
    var xmlPath = Path.Combine(basePath, commentsFileName);

    options.IncludeXmlComments(xmlPath);

    //添加Model類的注釋
    var modelFileName = "Leisure.BabakuaiBus.DtoModels.xml";
    var modelXmlPath = Path.Combine(basePath, modelFileName);
    options.IncludeXmlComments(modelXmlPath);

    options.DocInclusionPredicate((docName, description) => true);
});

3.在Startup.cs類的Configure方法中,啟用如下中間件:

app.UseSwagger();  
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "CIT WebAPI v1");
});

到此在項(xiàng)目中應(yīng)用Swagger的過(guò)程基本完成,是不是很簡(jiǎn)單,下面啟動(dòng)服務(wù)看效果:

Swagger頁(yè)面
Swagger頁(yè)面

在接口中顯示文檔描述

有的時(shí)候我們需要再Swagger文檔中顯示接口描述,那么我們應(yīng)該怎么做呢?

  1. 我們?cè)陧?xiàng)目中首相需要給接口,以及實(shí)體類加上C#文檔注釋(必須要現(xiàn)有文檔注釋).

  2. 生成操作如下:

    • 我們?cè)赪ebApi所在的項(xiàng)目中,在其屬性中的生成頁(yè)面中,勾選上XML文檔即可.

Swagger可以顯示的接口文檔
Swagger可以顯示的接口文檔

此處需要 注意 一點(diǎn),如果我們也想讓輸入輸出參數(shù)的文檔注釋也顯示再Swagger中那么我們也需要將輸入輸出參數(shù)實(shí)體類所在的項(xiàng)目,也需要生成XML文檔文件,并且我們需要將生成好的文檔文件放到Asp .Net Core運(yùn)行所在的目錄中.

在Swagger文檔中過(guò)濾接口

有的時(shí)候有的接口我們并不想將整個(gè)項(xiàng)目下的所有API接口都顯示再Swagger文檔中,暴露給消費(fèi)者,那么我們應(yīng)該怎么做呢?
很簡(jiǎn)單,我們只需要再不想暴露出來(lái)的Action上加上特性[ApiExplorerSettings(IgnoreApi = true)]即可.

示例代碼:

[HttpGet]
[ApiExplorerSettings(IgnoreApi = true)]
public ActionResult Index(string appKey , string userName ,string userPwd)
{
	//todo
}

參考文章地址: 在.NetCore WebApi中過(guò)濾Swagger文檔顯示接口方法

使用Swagger的其它注意事項(xiàng):

方法名相同的報(bào)錯(cuò)
方法名相同的報(bào)錯(cuò)來(lái)源:https://www./content-4-687251.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    精品高清美女精品国产区| 国产性色精品福利在线观看| 日韩人妻毛片中文字幕| av在线免费观看在线免费观看| 少妇被粗大进猛进出处故事| 日韩精品视频免费观看| 亚洲精品中文字幕欧美| 日韩一本不卡在线观看| 欧美av人人妻av人人爽蜜桃| 久久本道综合色狠狠五月| 国产精品一区欧美二区| 国产精品偷拍视频一区| 欧美精品一区久久精品| 女同伦理国产精品久久久| 激情视频在线视频在线视频| 国产成人av在线免播放观看av| 五月情婷婷综合激情综合狠狠 | 久久热在线免费视频精品| 久久国产精品熟女一区二区三区| 黄色av尤物白丝在线播放网址| 国产精品美女午夜视频| 不卡视频免费一区二区三区| 欧美不卡午夜中文字幕| 国产剧情欧美日韩中文在线| 欧美日韩精品综合一区| 国产成人av在线免播放观看av| 五月天丁香婷婷狠狠爱| 又色又爽又无遮挡的视频| 日韩成人高清免费在线| 精品国产亚洲免费91| 成人日韩视频中文字幕| 日韩国产亚洲欧美另类| 成年男女午夜久久久精品| 国产日韩久久精品一区| 深夜福利欲求不满的人妻| 中文字幕区自拍偷拍区| 久久亚洲精品成人国产| 在线观看欧美视频一区| 少妇淫真视频一区二区| 亚洲国产成人久久一区二区三区| 婷婷激情四射在线观看视频|