1.在项目中添加nuget包 Abp.Web.Api.SwaggerTool

2.在项目Abp模块的DependsOn添加AbpWebApiSwaggerToolModule

Run It,启动项目,访问/swagger/ui/index 就打开熟悉的swagger-ui界面,项目中webapi和动态Api的接口都出现了。

Abp.Web.Api.SwaggerTool作为swagger的增强包,内部实现了很多有用的功能并提供了一些最佳实践,用户无需在意Swagger的集成问题。

项目源码https://github.com/yuzukwok/Abp.Web.Api.SwaggerTool 大家可以提出issue 或者fork下

功能介绍

1.远程代理生成

我们可以根据swagger文档所描述的Api元信息生成访问这些Api的远程代理,目前支持Csharp的WebApiClient,Jquery或者AngularJS等代码。

用户访问以下endpoint获取代理的代码

/swagger/proxy/CSharp
/swagger/proxy/JQueryCallbacks
/swagger/proxy/JQueryPromises
/swagger/proxy/AngularJS
/swagger/proxy/Angular2

2.转换swagger文档为POSTMAN支持的导入格式,比POSTMAN自带的导入功能有更强的通用性

访问点:/swagger/postman

按文件夹分类,支持中文注释,POST接口自动生成了sample数据

3. 可以直接在swagger-ui上搜索接口,目前只支持搜索api地址

/swagger/docs/{apiVersion}/{key to search by path}

4.6种的swagger-ui样式,摆脱默认的swagger-ui

https://github.com/ostranme/swagger-ui-themes

5.强化Swashbuckle:优化枚举显示,自动使用Display特性的文本,WebApiController类上加DisplayName特性可以在swagger-ui上显示Controller的注释

配置文件说明

类库采用lts.Configuation作为配置文件约定,默认无需配置文件

在网站根目录配置.config 文件夹,新建一个SwaggerToolSettings.json 文件 ,文件内容如下

{"enable": true, //是否启用swagger集成"theme": "flattop", //主题名称 flattop,muted,newspaper,outline,monokai,feeling-blue
"HideAbpAutogeneratedApi": false, //是否隐藏Abp框架生成的Api接口
"HideDocPathAttributeName": "XX", //Api上标注此特性的话,则不在swagger中生成
"HideDocPaths": ["path1"],//Api中包含这些字符,则不在swagger中生成"CSharpGen": {"ClassName": "ApiClient", //C#代理生成的类名"Namespace": "ApiServices" //C#代理生成的命名空间
  },"TypeScriptGen": {"ClassName": "Client", //JS代理生成的类名"Namespace": "ApiServices" //JS代理生成的命名空间
  },"PostmanGen": {"name": "ApiServices" //名称
  },"XmlCommentFiles": ["xxx.xml"]//xml注释的文件名
}

转载于:https://www.cnblogs.com/yuzukwok/p/5724324.html

Abp集成Swagger的最佳实践相关推荐

  1. .NET Core开发实战(第15课:选项框架:服务组件集成配置的最佳实践)--学习笔记...

    15 | 选项框架:服务组件集成配置的最佳实践 这一节讲解如何使用选项框架来处理服务和配置的关系 选项框架的特性: 1.支持单例模式读取配置 2.支持快照 3.支持配置变更通知 4.支持运行时动态修改 ...

  2. ABP vnext模块化架构的最佳实践的实现

    在上一篇文章<手把手教你用Abp vnext构建API接口服务>中,我们用ABP vnext实现了WebAPI接口服务,但是并非ABP模块化架构的最佳实践.我本身也在学习ABP,我认为AB ...

  3. Node.js CLI 工具最佳实践

    为什么写这篇文章? 一个糟糕的 CLI 工具会让用户觉得难用,而构建一个成功的 CLI 需要密切关注很多细节,同时需要站在用户的角度,创造良好的用户体验.要做到这些特别不容易. 在这个指南中,我列出了 ...

  4. 将 DTS 用于业务智能解决方案的最佳实践

    摘自:http://www.microsoft.com/china/MSDN/library/archives/library/dnSQL2k/html/SQL_busintbpwithDTS.asp ...

  5. 基于ABP落地领域驱动设计-05.实体创建和更新最佳实践

    围绕DDD和ABP Framework两个核心技术,后面还会陆续发布核心构件实现.综合案例实现系列文章,敬请关注! ABP Framework 研习社(QQ群:726299208) ABP Frame ...

  6. 持续集成(三):最佳实践

    [编者的话]这是持续集成系列的最后一篇,在本文中,作者列出了Martin Fowler撰写的CI白皮书里面的一些原则,并介绍了一些个人的实践经验. 引言 本文讲的是持续集成(三):最佳实践这是持续集成 ...

  7. 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则

    前言 上一篇 基于ABP落地领域驱动设计-01.全景图 概述了DDD理论和对应的解决方案.项目组成.项目引用关系,以及基于ABP落地DDD的通用原则.从这本篇开始,会更加深入地介绍在基于 ABP Fr ...

  8. 基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则

    dotNET兄弟会 专注.Net开源技术及跨平台开发!致力于构建完善的.Net开放技术文库!为.Net爱好者提供学习交流家园! 公众号 围绕DDD和ABP Framework两个核心技术,后面还会陆续 ...

  9. 持续集成与持续部署实践_持续集成和部署的3个最佳实践

    持续集成与持续部署实践 本文涵盖了三个关键主题:自动化CI / CD配置,将Git存储库用于常见的CI / CD工件以及对Jenkins管道进行参数设置. 术语 首先是第一件事: 让我们定义一些术语. ...

最新文章

  1. https://blog.csdn.net/blmoistawinde/article/details/84329103
  2. leetcode|第三大的数java题解
  3. PyTorch 1.0 中文文档:torch.utils.dlpack
  4. libjson文档翻译
  5. idea允许多实例运行
  6. Angular使用ng build打包报错 Property 'setControl' does not exist on type 'AbstractControl'.解决方法
  7. 深度学习 keras_Keras深度学习教程
  8. 文档碎片createDocumentFragment
  9. 华为ensp配置vrrp
  10. js 获取 当前年月日以及农历日期和星期几
  11. 单调有界定理适用于函数吗_实数的完备性定理
  12. mysql中计算百分比
  13. iOS 关于iTMSTransporter上传IPA报错问题
  14. 面试必问题之Docker分布式搭建
  15. 2016年中国智慧城市发展前瞻
  16. 远远被大家低估了的实用智能家居设备——窗帘电机
  17. 打游戏时突然出现截屏(Alt+A)的解决
  18. 如何在JavaScript中循环遍历JSON响应?
  19. HTML5废弃的标签和属性
  20. 百度开源的Warp-CTC人工智能技术,到底是什么鬼?

热门文章

  1. 9.21nbsp;中航光电面试
  2. 美国工程师挣多少钱(from http://forum.eet-cn.com)
  3. 恒驰的“世界地图” ,许家印的“集结号”
  4. 网络安全千万条,渗透测试第一条
  5. 服务器里解压缩gz文件夹,Shell命令文件压缩解压缩之gzip、zip的案例分析
  6. Matlab论文插图绘制模板第56期—曲面图(Surf)
  7. wifi客流php源码,车站机场WIFI客流的简单数据分析
  8. 雨伞图形 -《跟小海龟学Python》案例代码
  9. java_SSM高校教材征订管理系统
  10. Verilog刷题HDLBits——Exams/ece241 2014 q7a