溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Swagger怎么使用

發(fā)布時間:2022-03-15 15:05:30 來源:億速云 閱讀:183 作者:iii 欄目:web開發(fā)

今天小編給大家分享一下Swagger怎么使用的相關知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Swagger怎么使用

  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è)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI