Abp集成Swagger的最佳实践
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的最佳实践相关推荐
- .NET Core开发实战(第15课:选项框架:服务组件集成配置的最佳实践)--学习笔记...
15 | 选项框架:服务组件集成配置的最佳实践 这一节讲解如何使用选项框架来处理服务和配置的关系 选项框架的特性: 1.支持单例模式读取配置 2.支持快照 3.支持配置变更通知 4.支持运行时动态修改 ...
- ABP vnext模块化架构的最佳实践的实现
在上一篇文章<手把手教你用Abp vnext构建API接口服务>中,我们用ABP vnext实现了WebAPI接口服务,但是并非ABP模块化架构的最佳实践.我本身也在学习ABP,我认为AB ...
- Node.js CLI 工具最佳实践
为什么写这篇文章? 一个糟糕的 CLI 工具会让用户觉得难用,而构建一个成功的 CLI 需要密切关注很多细节,同时需要站在用户的角度,创造良好的用户体验.要做到这些特别不容易. 在这个指南中,我列出了 ...
- 将 DTS 用于业务智能解决方案的最佳实践
摘自:http://www.microsoft.com/china/MSDN/library/archives/library/dnSQL2k/html/SQL_busintbpwithDTS.asp ...
- 基于ABP落地领域驱动设计-05.实体创建和更新最佳实践
围绕DDD和ABP Framework两个核心技术,后面还会陆续发布核心构件实现.综合案例实现系列文章,敬请关注! ABP Framework 研习社(QQ群:726299208) ABP Frame ...
- 持续集成(三):最佳实践
[编者的话]这是持续集成系列的最后一篇,在本文中,作者列出了Martin Fowler撰写的CI白皮书里面的一些原则,并介绍了一些个人的实践经验. 引言 本文讲的是持续集成(三):最佳实践这是持续集成 ...
- 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则
前言 上一篇 基于ABP落地领域驱动设计-01.全景图 概述了DDD理论和对应的解决方案.项目组成.项目引用关系,以及基于ABP落地DDD的通用原则.从这本篇开始,会更加深入地介绍在基于 ABP Fr ...
- 基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则
dotNET兄弟会 专注.Net开源技术及跨平台开发!致力于构建完善的.Net开放技术文库!为.Net爱好者提供学习交流家园! 公众号 围绕DDD和ABP Framework两个核心技术,后面还会陆续 ...
- 持续集成与持续部署实践_持续集成和部署的3个最佳实践
持续集成与持续部署实践 本文涵盖了三个关键主题:自动化CI / CD配置,将Git存储库用于常见的CI / CD工件以及对Jenkins管道进行参数设置. 术语 首先是第一件事: 让我们定义一些术语. ...
最新文章
- https://blog.csdn.net/blmoistawinde/article/details/84329103
- leetcode|第三大的数java题解
- PyTorch 1.0 中文文档:torch.utils.dlpack
- libjson文档翻译
- idea允许多实例运行
- Angular使用ng build打包报错 Property 'setControl' does not exist on type 'AbstractControl'.解决方法
- 深度学习 keras_Keras深度学习教程
- 文档碎片createDocumentFragment
- 华为ensp配置vrrp
- js 获取 当前年月日以及农历日期和星期几
- 单调有界定理适用于函数吗_实数的完备性定理
- mysql中计算百分比
- iOS 关于iTMSTransporter上传IPA报错问题
- 面试必问题之Docker分布式搭建
- 2016年中国智慧城市发展前瞻
- 远远被大家低估了的实用智能家居设备——窗帘电机
- 打游戏时突然出现截屏(Alt+A)的解决
- 如何在JavaScript中循环遍历JSON响应?
- HTML5废弃的标签和属性
- 百度开源的Warp-CTC人工智能技术,到底是什么鬼?
热门文章
- 9.21nbsp;中航光电面试
- 美国工程师挣多少钱(from http://forum.eet-cn.com)
- 恒驰的“世界地图” ,许家印的“集结号”
- 网络安全千万条,渗透测试第一条
- 服务器里解压缩gz文件夹,Shell命令文件压缩解压缩之gzip、zip的案例分析
- Matlab论文插图绘制模板第56期—曲面图(Surf)
- wifi客流php源码,车站机场WIFI客流的简单数据分析
- 雨伞图形 -《跟小海龟学Python》案例代码
- java_SSM高校教材征订管理系统
- Verilog刷题HDLBits——Exams/ece241 2014 q7a