JcApiHelper 簡單好用的.Net ApiHelper


一 背景

隨着前端技術的不斷發展,各種框架逐漸成熟,前端 Angular,React,Vue 三分天下。再加上移動端的崛起,前后端分離開發成為主流,前端后端代碼混合開發的方式淪為被淘汰的局面。如今 MVC 框架中的 View 已經名存實亡,大多數 Asp.Net Core 項目都只提供 Api 接口服務。在前后端分離開發過程中,Api接口成為了連接前后端的唯一橋梁。

所以溝通清楚Api接口成為了重中之重。Api接口文檔就成為了必不可少的文件。

二 現狀

現在有很多的第三方接口文檔維護網站,比如Eolinker,EasyAPI等。第三方的API接口服務,接口大多需要手動錄入,接口變動后需要手動修改。維護比較繁瑣。.net里面的Api接口文檔當然要提下Swagger了。Swagger兼具了Api文檔管理和測試的功能。是一個比較成熟的API接口文檔管理工具。

三 問題

既然已經有Swagger了為啥還要自己造輪子呢?介紹下我在使用過程中碰到的問題。因為我喜歡用Mvc項目模板,form表單格式可以滿足大多數的需求。Swagger在webApi項目中可以正常使用,在Mvc模板中引入卻不工作,無法生成接口文檔。可能是哪配置的不對。拉下Swagger的源碼調試下,打開Swagger的項目基本上蒙圈了。引入項目中調試跟入也沒搞懂。一直沒看懂是在哪生成的方法接口信息。

從直覺上來講,生成文檔的思路應該比較清晰,從程序集讀取接口,類對象,屬性相關信息,然后再通過解析xml說明文件就可以了。So自己造一個吧,造一個大家都能看懂的輪子。

四 使用技術

JcApiHelper,支持.net Core 2.0+ 版本(說明.Net Core 3.0請使用1.0.13版本 .Net Core 2.0請使用1.0.12版本)

.Net Standard 類庫項目 引入AspNetCore.Mvc.Core等相關nuget包

UI使用angular,引入Ant Design 的NG-ZORRO框架。

五 JcApiHelper優勢

1.使用簡單,只要在startup中調用app.UseJcApiHelper()即可引入

2.可按controller瀏覽接口,支持接口篩選查找

3.支持項目非根目錄部署和nginx代理

4.支持前端TypeScript類對象和請求服務代碼生成

5.在線http請求接口測試

6.WebSocket連接測試

7.Json格式化工具,支持自Json數據轉換為TypeScript對象.

六 可能存在的問題

1.接口信息安全問題

如果不想在發布版本中暴露接口信息,可以只在測試環境時,IHost.IsDev中引入。在ASP.NET Core項目中可以通過環境變量來控制環境切換,詳細介紹參照https://www.cnblogs.com/tdfblog/p/Environments-LaunchSettings-in-Asp-Net-Core.html

2.接口授權攔截問題

如果你的項目做了統一授權管理,請在權限處理Filter中允許匿名訪問。

ApiHelper接口Controller和Action都帶有AllowAnoumous特性。如在權限Filter中未忽略該特性,可能會導致Helper接口被攔截無法訪問。

七 使用方法

1.項目需要開啟Xml文檔生成

2.項目中引入Jc.ApiHelper包

在Mvc/WebApi項目中,打開Nuget包管理,搜索Jc.ApiHelper,然后選擇Jc.ApiHelper目前最新版本安裝

3.啟用JcApiHelper

在StartUp文件,Configure方法中,加入如下代碼,至此,JcApiHelper即啟用完成.

app.UseJcApiHelper();

4.瀏覽效果

運行項目,然后訪問http://localhost:5000/ApiHelper

點擊現在開始或菜單上的ApiHelper進入接口瀏覽頁面

 

點擊接口名稱,查看接口詳情

 

在線Demo地址:https://apihelper.jccore.cn

八  項目源碼

.Net項目源碼:https://github.com/279328316/JcApiHelper

前端項目源碼:https://github.com/279328316/JcApiHelper.Html

 

如有問題,歡迎留言指教.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM