.Net Core 分佈式微服務框架 - Jimu 添加 Swagger 支持

https://www.cnblogs.com/grissom007/p/9432708.html

一、前言

最近有空就優化 Jimu (一個基於.Net Core 的分佈式微服務框架),考慮到現在的開發組織都向前後端分離發展,前後端各司其職,好的 api 文檔可以減少大家溝通的時間成本,所以優先給 Jimu 添加對 api 文檔生成的支持。市面上非常著名和牛逼的的 api 文檔生成框架非 swagger 莫屬。 它可以用來生成、描述、調用可視化的 Web 服務。花了 二天多的時間把它集成到 Jimu 的 apigateway。

如圖

api 列表

api 明細

二、使用方式

1. 環境

  • Net Core 2.0
  • 基於Jimu 框架的 ApiGateway

2. 添加引用


Install-Package Jimu.Client.ApiGateway.SwaggerIntegration

3. 啓動代碼

在 Startup 裏添加 UseJimuSwagger()


        public void ConfigureServices(IServiceCollection services)
        { 
            services.UseJimuSwagger(); // 添加 Swagger 支持 
        }
 
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {  
            app.UseJimuSwagger(); // 添加 Swagger 支持

     

4. 定義接口(服務/方法)

接口定義可以添加三種標註,這些標註最終會顯示在 swagger 生成的文檔。

aJimuService 標註是對接口元數據的定義和描述,如創建人、時間、描述、訪問角色限制等。
bJimuFieldComment 標註是對形式參數的註釋。
cJimuReturnComment 標註是對接口的返回類型做註釋。


        [JimuService(EnableAuthorization = true, CreatedBy = "grissom", CreatedDate = "2018-07-17", Comment = "根據新聞 id 獲取新聞內容")]
        [JimuFieldComment("id", "新聞id")]
        [JimuReturnComment("一篇新聞內容")]
        News GetNews(string id);

5. 定義對象 (DTO)

如果接口參數或返回類型是一個用戶定義的類,對應的屬性也可以添加註釋標註 JimuFieldComment, 這些標註最終會顯示在 swagger 生成的文檔。

    public class News
    {
        [JimuFieldComment("新聞id")]
        public string Id { get; set; }
        [JimuFieldComment("新聞標題")]
        public string Title { get; set; }
        [JimuFieldComment("作者")]
        public string Director { get; set; }
        [JimuFieldComment("發佈時間")]
        public string PostTime { get; set; }
        [JimuFieldComment("新聞內容")]
        public string Content { get; set; }

    }

三、圖解

四、總結

支持開源是很累和很耗時間的活,不過開源過程中自己也學到很多知識,希望可以一直堅持下去。

五、源碼

https://github.com/grissomlau/jimu

https://github.com/grissomlau/jimu.demo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章