C# WebAPI中使用Swagger

来源:https://www.cnblogs.com/peterYong/archive/2018/09/01/9569453.html
-Advertisement-
Play Games

隨著互聯網技術的發展,現在的網站架構基本都由原來的後端渲染,變成了:前端渲染、先後端分離的形態,而且前端技術和後端技術在各自的道路上越走越遠。 前端和後端的唯一聯繫,變成了API介面;API文檔變成了前後端開發人員聯繫的紐帶,變得越來越重要,swagger就是一款讓你更好的書寫API文檔的框架。 其 ...


隨著互聯網技術的發展,現在的網站架構基本都由原來的後端渲染,變成了:前端渲染、先後端分離的形態,而且前端技術和後端技術在各自的道路上越走越遠。 

前端和後端的唯一聯繫,變成了API介面;API文檔變成了前後端開發人員聯繫的紐帶,變得越來越重要,swagger就是一款讓你更好的書寫API文檔的框架。

其他API文檔工具

沒有API文檔工具之前,大家都是手寫API文檔的,在什麼地方書寫的都有,有在confluence上寫的,有在對應的項目目錄下readme.md上寫的,每個公司都有每個公司的玩法,無所謂好壞。

書寫API文檔的工具有很多,但是能稱之為“框架”的,估計也只有swagger了。 

在此先介紹一款其他的API文檔工具,叫rap,這玩意兒用一句話就能概括:解放生產力,代替手寫API的web工具。 

RAP寫起來確實比手寫文檔要快, 可以選擇某個項目,寫針對某個項目的API 

RAP是由阿裡開發的,整個阿裡都在用,還不錯。github地址為:https://github.com/thx/RAP 
當然咯,rap不可能只有線上版本,肯定可以部署到私服上。 
https://github.com/thx/RAP/wiki/deploy_manual_cn

swagger

rap挺好的,但是和swagger比起來有點輕量。 
先看看swagger的生態使用圖:

 

其中,紅顏色的是swaggger官網方推薦的。

下麵再細看看swagger的生態的具體內容:

swagger-ui

這玩意兒從名字就能看出來,用來顯示API文檔的。和rap不同的是,它不可以編輯。

swagger-editor

就是一個線上編輯文檔說明文件(swagger.json或swagger.yaml文件)的工具,以方便生態中的其他小工具(swagger-ui)等使用。 
左邊編輯,右邊立馬就顯示出編輯內容來。

編輯swagger說明文件使用的是yaml語法具體的內容可以去官網查看。

各種語言版本的根據annotation或者註釋生成swagger說明文檔的工具

目前最流行的做法,就是在代碼註釋中寫上swagger相關的註釋,然後,利用小工具生成swagger.json或者swagger.yaml文件。

目前官方沒有推出。github上各種語言各種框架各種有,可以自己搜吧搜吧,這裡只說一個php相關的。 
swagger-php :https://github.com/zircote/swagger-php

swagger-validator

這個小工具是用來校驗生成的文檔說明文件是否符合語法規定的。用法非常簡單,只需url地址欄,根路徑下加上一個參數url,參數內容是放swagger說明文件的地址。即可校驗。 

docker hub地址為:https://hub.docker.com/r/swaggerapi/swagger-validator/ 
可以pull下鏡像來自己玩玩。

swagger-codegen

代碼生成器,腳手架。可以根據swagger.json或者swagger.yml文件生成指定的電腦語言指定框架的代碼。 
有一定用處,Java系用的挺多。工業上應該不咋用。

mock server

這個目前還沒有找到很合適的mock工具,包括rap也好,其他API文檔工具也好,都做的不夠完善,大多就是根據說明文件,例如swagger.json等生成一些死的靜態的mock數據,不能夠根據限定條件:例如“只能是數字,必傳”等做出合理的回應。

 

 

C# 在webapi項目中配置Swagger

1、安裝包 Swashbuckle

    會自動生成 SwaggerConfig.cs文件

2、右鍵項目屬性—>生成—>勾選XML文檔文件

  eg  bin\WebApi.xml    【若對api寫了註釋,併在swagger中 開啟了,則會自動生成一些說明節點】

3、運行  eg:http://localhost:2146/swagger

4、發現,安裝完成後,寫註釋並沒有在swagger頁面上面增加,所以我們現在開開啟註釋

在SwaggerConfig類中,EnableSwagger的時候添加下麵XML解析(預設是有的,只是註釋掉了)

c.IncludeXmlComments(GetXmlCommentsPath());

並添加方法 即可

/// <summary>
        ///  添加XML解析
        /// </summary>
        /// <returns></returns>
        private static string GetXmlCommentsPath()
        {
            return string.Format("{0}/bin/WebApi.XML", System.AppDomain.CurrentDomain.BaseDirectory);
        }
View Code

xml文檔中也會自動寫入註釋

5、調試

 註意參數是字元串時需要帶雙引號"",、

 

更多參考:

https://www.cnblogs.com/lhbshg/p/8711604.html

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Spring MVC高級技術包括但不限於web.xml配置、異常處理、跨重定向請求傳遞數據 1、web.xml文件的配置 ContextLoaderListener是根容器,DispatcherServlet是子容器。父容器中管理的bean可以被子容器引用,反之,不行。它們都從各自的xml文件初始化 ...
  • ROW_NUMBER() OVER (ORDER BY (select Null)) AS Id entity framework 查詢中有這句會有異常 ...
  • 隨著ASP.NET Aries的普及,剛好也有點閑空,趕緊把Excel導入功能的教程補上。 Excel導入功能,分為四篇:單表配置(上)、多表高級配置(中)、配置規則(下)、代碼編寫(番外篇)。 本篇介紹單表配置功能。 ...
  • 基於Dapper二次封裝了一個易用的ORM工具類:SqlDapperUtil,把日常能用到的各種CRUD都進行了簡化封裝,讓普通程式員只需關註業務即可,因為非常簡單,故直接貼源代碼,大家若需使用可以直接複製到項目中,該SqlDapperUtil已廣泛用於公司項目中。 ColumnAttributeT ...
  • 最近做了微信小程式支付,支付成功之後發現notify_url回調地址竟然沒有訪問。 檢查了無數次代碼,下單結果裡面的回調地址看了又看,都沒有錯啊。 把回調地址複製出來到瀏覽器上面,外網也是可以訪問的啊。 然後我再分析,為什麼以前公眾號支付都沒有出現這種類型的錯誤,偏偏小程式就出現了呢。 然後對比了一 ...
  • 搭建一個.net core webapi項目 在開始之前,請先安裝最新版本的VS2017,以及最新的.net core 2.1。 首先創建一個Asp.Net Core Web應用程式 這個應用程式是可以直接運行的,採用的微軟預設的頁面。但是在運行中會出現這樣的頁面,因為預設使用用https導致 那麼 ...
  • 9月1號是開學的日子,雖然已不是在校學生,但是仍然要時刻保持學習。 工作初期偶然接觸到了博客園,保存了很多有用的帖子,但一直沒想過寫自己的博客。最近在團隊領導的建議下, 開通了屬於自己的個人博客,目的是為了記錄自己的學習經歷,項目經驗,和解決困難問的題思路方法,便於日後自己查看。 在此記錄一下此刻激 ...
  • Proto.Actor中提供了基於tcp/ip的通迅來實現Remote,可以通過其Remot實現對Actor的調用。 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...