您好,登錄后才能下訂單哦!
今天小編給大家分享一下Swagger怎么使用的相關知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
Swagger可以很方便的為發(fā)布的WebApi自動生成優(yōu)雅的文檔,不需額外自己編寫,只需為項目配置好,是一個很好用的工具。
1、使用HuGet導入Swashbuckle包
2、修改SwaggerConfig.cs
導入Swashbuckle后會自動在站點的App_Start文件夾下生成SwaggerConfig.cs,用于配置Swagger頁面。配置的東西很多,下面只列舉我個人需要的簡單的配置(因為其他沒研究)。
1publicclassSwaggerConfig
2{
3publicstaticvoidRegister()
4{
5varthisAssembly=typeof(SwaggerConfig).Assembly;
6
7GlobalConfiguration.Configuration
8.EnableSwagger(c=>
9{
10c.SingleApiVersion("v1","MyWebApi").Contact(x=>
11{
12x.Name("Bobbie");//配置界面頭部描述
13});
14
15c.IncludeXmlComments(GetXmlCommentsPath("/bin/WarRoom.WebApi.XML"));//配置模板XML路徑
16
17})
18.EnableSwaggerUi(c=>
19{
c.InjectJavaScript(Assembly.GetExecutingAssembly(),"MyWebApi.Scripts.Swagger_CN.js");//配置漢化js文件
20});
21}
22
23privatestaticstringGetXmlCommentsPath(stringXmlPath)
24{
25return$@"{System.AppDomain.CurrentDomain.BaseDirectory}"+XmlPath;
26}
27}
3、配置項目屬性
主要是設置“生成”下的幾個配置,就是我畫紅框框的,下面解釋一下幾個配置的作用:
(1)禁止警告1591是屬于禁止缺少注釋的警告的,不然沒有頭部注釋的類、函數(shù)都會有警告的下劃線,看著不舒服(但該警告不影響使用)。
(2)勾選XML文檔文件,會自動生成一個路徑,這個路徑要于SwaggerConfig.cs中配置的一致:
c.IncludeXmlComments(GetXmlCommentsPath("/bin/WarRoom.WebApi.XML"));
由此其實已經(jīng)配置完成,下面進行測試:
4、測試
新建一個Controller,文件名為DemoController.cs:
1publicclassDemoController:ApiController
2{
3///<summary>
4///我就是PostTest方法
5///</summary>
6///<paramname="name">參數(shù)1</param>
7///<returns></returns>
8[HttpGet]
9publicstringPostTest(stringname)
10{
11stringresult="Hello"+name;
12returnresult;
13}
然后運行,訪問localhost:27827/Swagger(網(wǎng)址端口看自己的項目),可以看到如下界面就是成功了:
頁面會將接口路徑、接口函數(shù)、注釋、參數(shù)等基本信息都自動生成,還提供接口測試功能(單擊TryitOut),可以測試接口(可直接輸入?yún)?shù))。
5、漢化
有些朋友喜歡中文,這邊也測試一下漢化的功能,主要就是添加一個漢化功能的JS文件,并在SwaggerConfig.cs配置導入即可:
?。?)新建名為Swagger_CN.js的文件,放在Scripts文件夾下:
1'usestrict';
2/**
3*Translatorfordocumentationpages.
4*
5*Toenabletranslationyoushouldincludeoneoflanguage-filesinyourindex.html
6*after<scriptsrc='lang/translator.js'type='text/javascript'></script>.
7*Forexample-<scriptsrc='lang/ru.js'type='text/javascript'></script>
8*
9*Ifyouwishtotranslatesomenewtexstsyoushoulddotwothings:
10*1.Addanewphrasepair("NewPhrase":"NewTranslation")intoyourlanguagefile(forexamplelang/ru.js).Itwillbegreatifyouadditinotherlanguagefilestoo.
11*2.Markthattextittemplatesthisway<anyHtmlTagdata-sw-translate>NewPhrase</anyHtmlTag>or<anyHtmlTagdata-sw-translatevalue='NewPhrase'/>.
12*Themainthinghereisattributedata-sw-translate.Onlyinnerhtml,title-attributeandvalue-attributearegoingtotranslate.
13*
14*/
15window.SwaggerTranslator={
16_words:[],
17translate:function(){
18var$this=this;
19$('[data-sw-translate]').each(function(){
20$(this).html($this._tryTranslate($(this).html()));
21$(this).val($this._tryTranslate($(this).val()));
22$(this).attr('title',$this._tryTranslate($(this).attr('title')));
23});
24},
25_tryTranslate:function(word){
26returnthis._words[$.trim(word)]!==undefined?this._words[$.trim(word)]:word;
27},
28learn:function(wordsMap){
29this._words=wordsMap;
30}
31};
32/*jshintquotmark:double*/
33window.SwaggerTranslator.learn({
34"Warning:Deprecated":"警告:已過時",
35"ImplementationNotes":"實現(xiàn)備注",
36"ResponseClass":"響應類",
37"Status":"狀態(tài)",
38"Parameters":"參數(shù)",
39"Parameter":"參數(shù)",
40"Value":"值",
41"Description":"描述",
42"ParameterType":"參數(shù)類型",
43"DataType":"數(shù)據(jù)類型",
44"ResponseMessages":"響應消息",
45"HTTPStatusCode":"HTTP狀態(tài)碼",
46"Reason":"原因",
47"ResponseModel":"響應模型",
48"RequestURL":"請求URL",
49"ResponseBody":"響應體",
50"ResponseCode":"響應碼",
51"ResponseHeaders":"響應頭",
52"HideResponse":"隱藏響應",
53"Headers":"頭",
54"Tryitout!":"試一下!",
55"Show/Hide":"顯示/隱藏",
56"ListOperations":"顯示操作",
57"ExpandOperations":"展開操作",
58"Raw":"原始",
59"can'tparseJSON.Rawresult":"無法解析JSON.原始結(jié)果",
60"ModelSchema":"模型架構(gòu)",
61"Model":"模型",
62"apply":"應用",
63"Username":"用戶名",
64"Password":"密碼",
65"Termsofservice":"服務條款",
66"Createdby":"創(chuàng)建者",
67"Seemoreat":"查看更多:",
68"Contactthedeveloper":"聯(lián)系開發(fā)者",
69"apiversion":"api版本",
70"ResponseContentType":"響應內(nèi)容類型",
71"fetchingresource":"正在獲取資源",
72"fetchingresourcelist":"正在獲取資源列表",
73"Explore":"瀏覽",
74"ShowSwaggerPetstoreExampleApis":"顯示SwaggerPetstore示例Apis",
75"Can'treadfromserver.Itmaynothavetheappropriateaccess-control-originsettings.":"無法從服務器讀取??赡軟]有正確設置access-control-origin。",
76"Pleasespecifytheprotocolfor":"請指定協(xié)議:",
77"Can'treadswaggerJSONfrom":"無法讀取swaggerJSON于",
78"FinishedLoadingResourceInformation.RenderingSwaggerUI":"已加載資源信息。正在渲染SwaggerUI",
79"Unabletoreadapi":"無法讀取api",
80"frompath":"從路徑",
81"serverreturned":"服務器返回"
82});
83$(function(){
84window.SwaggerTranslator.translate();
85});
?。?)將Swagger_CN.js設置為“嵌入的資源”
屬性->生成操作->設置為“嵌入的資源”
?。?)配置SwaggerConfig.cs
在EnableSwaggerUi下添加:
c.InjectJavaScript(Assembly.GetExecutingAssembly(),"MyWebApi.Scripts.Swagger_CN.js");
注:MyWebApi.Scripts.Swagger_CN.js格式為:項目名.文件夾名.JS文件名
這個可以看上面的SwaggerConfig.cs文件配置。然后再次運行
以上就是“Swagger怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。