Web Api 2.0中使用Swagger生成Api文檔的2個(gè)小Tips

…本

當(dāng)Web Api 2.0使用OAuth2授權(quán)時(shí),如何在Swagger中添加Authorization請求頭?

Swagger說明文檔支持手動(dòng)調(diào)用Api, 但是當(dāng)Api使用OAuth2授權(quán)時(shí),由于沒有地方可以輸入授權(quán)Token, 導(dǎo)致響應(yīng)結(jié)果一直是401沒有授權(quán)。

解決方案:

在Swagger配置文件中,添加對請求頭中Authorization的設(shè)置。

1. 在Api項(xiàng)目中添加一個(gè)新類AddAuthorizationHeader并實(shí)現(xiàn)IOperationFilter接口

publicclassAddAuthorizationHeader : IOperationFilter

{//////Adds an authorization header to the given operation in Swagger.//////The Swashbuckle operation.///The Swashbuckle schema registry.///The Swashbuckle api description.publicvoidApply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)

{if(operation ==null)return;if(operation.parameters ==null)

{

operation.parameters=newList();

}varparameter =newParameter

{

description="Token",

@in="header",

name="Authorization",

required=true,

type="string"};if(apiDescription.ActionDescriptor.GetCustomAttributes().Any())

{//如果Api方法是允許匿名方法,Token不是必填的parameter.required=false;

}

operation.parameters.Add(parameter);

}

}

2. 在SwaggerConfig.cs中啟用Authorization請求頭。

publicstaticvoidRegister(HttpConfiguration config)

{varthisAssembly =typeof(SwaggerConfig).Assembly;

config.EnableSwagger(c=>{

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容