小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

003 在.Net Core 中使用 Swagger

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

引出問題

有的時候我們編寫了一個API項目,但是沒有太多時間來編寫接口文檔,這個時候會增加與消費者(API)調用者的溝通成本,這個時候Swagger的使用就很有必要了.

在Asp .Net Core Web API 中使用Swagger

  1. 在WebApi,所在的項目中,通過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項目的含義名稱", 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");
});

到此在項目中應用Swagger的過程基本完成,是不是很簡單,下面啟動服務看效果:

Swagger頁面
Swagger頁面

在接口中顯示文檔描述

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

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

  2. 生成操作如下:

    • 我們在WebApi所在的項目中,在其屬性中的生成頁面中,勾選上XML文檔即可.

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

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

在Swagger文檔中過濾接口

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

示例代碼:

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

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

使用Swagger的其它注意事項:

方法名相同的報錯
方法名相同的報錯來源:https://www./content-4-687251.html

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多