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在WebApi,所在的項(xiàng)目中,通過(guò)Nuget安裝SwashBuckle.AspNetCore 包,此包依賴如下包: SwashBuckle.AspNetCore.Swagger SwashBuckle.AspNetCore.SwaggerGen SwashBuckle.AspNetCore.SwaggerUI SwashBuckle.AspNetCore.ApiDescription.Server
在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è)面在接口中顯示文檔描述有的時(shí)候我們需要再Swagger文檔中顯示接口描述,那么我們應(yīng)該怎么做呢? 我們?cè)陧?xiàng)目中首相需要給接口,以及實(shí)體類加上C#文檔注釋(必須要現(xiàn)有文檔注釋). 生成操作如下:
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ò)來(lái)源:https://www./content-4-687251.html
|