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下

V0.1.1

功能介绍

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
  "CSharpGen": {
    "ClassName": "ApiClient", //C#代理生成的类名
    "Namespace": "ApiServices" //C#代理生成的命名空间
  },
  "TypeScriptGen": {
    "ClassName": "Client", //JS代理生成的类名
    "Namespace": "ApiServices" //JS代理生成的命名空间
  },
  "PostmanGen": {
    "name": "ApiServices" //名称
  },
  "XmlCommentFiles": ["xxx.xml"]//xml注释的文件名

}
时间: 2025-01-18 13:02:11

Abp集成Swagger的最佳实践的相关文章

开涛spring3(7.5) - 对JDBC的支持 之 7.5 集成Spring JDBC及最佳实践

7.5 集成Spring JDBC及最佳实践 大多数情况下Spring JDBC都是与IOC容器一起使用.通过配置方式使用Spring JDBC. 而且大部分时间都是使用JdbcTemplate类(或SimpleJdbcTemplate和NamedParameterJdbcTemplate)进行开发,即可能80%时间使用JdbcTemplate类,而只有20%时间使用其他类开发,符合80/20法则.   Spring JDBC通过实现DaoSupport来支持一致的数据库访问. Spring J

大数据管理:数据集成的技术、方法与最佳实践 读书笔记三

7.1 什么是数据仓库 数据仓库是基于特定的数据结构(以及有关应用程序)所构建的数据的中央存储库,以便为分析和报表提供 一致的数据源.面向整个组织创建的企业数据仓库(Enterprise Data Warehouse,EDW)用于对整个组织的信息 进行分析.大多数情况下,超大型组织中会有多个企业级数据仓库,每个都拥有组织中某个很大组成部分的数 据,如某个区域,或者很大的功能域.批处理数据集成方案通常用于将数据置入或者移出数据仓库.数据仓库架 构的设计要达到以下目的:为整个组织的分析提供一致可用的

个推持续集成最佳实践

软件开发过程中,开发成员经常需要把自己工作集成到项目中,通常每个成员每天至少集成一次.如果项目较小,对外部的依赖较小,那么软件集成可能不会是什么问题.但是目前很多软件项目特别是互联网项目面临着需求不明确,系统架构复杂,任务分配混乱等一系列问题,从而给持续集成带来许多麻烦.也给整个项目带来不必要的风险.因此一个有效的持续集成系统越来越重要.个推平台是一个极其复杂的分布式系统,整个系统包含了 RPC 调用,高速缓存,集群同步等各种复杂的场景.整个团队只有二十来个人却维护了近百个模块的开发和测试工作,

【Sentinel】sentinel 集成 apollo 最佳实践

[Sentinel]sentinel 集成 apollo 最佳实践 前言 ??在 sentinel 的控制台设置的规则信息默认都是存在内存当中的.所以无论你是重启了 sentinel 的客户端还是 sentinel 的控制台.你所设置的规则都会丢失.如果想要 sentinel 在线上环境使用,要么花钱用阿里云上的付费版本,要么自己去实现规则的持久化,如果你或你所在的公司不差钱,那么关掉这篇文章,直接用付费版吧,省掉了一大堆坑要踩.或者你是一个特立独行的人,那么我们接着往下说. ??首先说一下写这

毫秒必争,前端网页性能最佳实践

你愿意为打开一个网页等待多长时间?我一秒也不愿意等.但是事实上大多数网站在响应速度方面都让人失望.现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文章中我们来介绍一下提高网页性能的最佳实践,以及相应的问题解决方案,让站长或者即将要成为站长的朋友了解如何去测试和提高网站响应速度,对自己的网站更有信心. 最佳实践 最佳实践我们引用的来自yahoo前端性能团队总结的35条黄金定律.原文猛击这里.下面我们分门别类将每条的关键点总结一下. 网页内容 减少http请求次数 减少DNS

腾讯优测优分享 | 探索react native首屏渲染最佳实践

腾讯优测是专业的移动云测试平台,旗下的优分享不定时提供大量移动研发及测试相关的干货~此文主要与以下内容相关,希望对大家有帮助. react native给了我们使用javascript开发原生app的能力,在使用react native完成兴趣部落安卓端发现tab改造后,我们开始对由react native实现的界面进行持续优化.目标只有一个,在享受react native带来的新特性的同时,在体验上无限逼近原生实现.作为一名前端开发,本文会从前端角度,探索react native首屏渲染最佳实

OSGi原理与最佳实践:第一章 OSGi框架简介(2)

OSGi原理与最佳实践:第一章 OSGi框架简介(2) 由  ValRay 发布 已被浏览4884次 共有3条评论 已被3个人收藏 2013-08-16 21:23 顶(0) 踩(0) osgi原理与最佳实践 1.1.4 开发传统类型的应用 1.1.4.1 B/S 我们首先来看一下,如何基于 OSGi 来开发 B/S 结构的应用.B/S 结构应用程序的开发,可有两个选择:一个是在 OSGi 的框架中嵌入 Http 服务器,另外一个是在 Servlet 容器中嵌入 OSGi 框架.下面分别介绍这两

OSGi原理与最佳实践:第一章 OSGi框架简介(5)Spring-DM

OSGi原理与最佳实践:第一章 OSGi框架简介(5)Spring-DM 由  ValRay 发布 已被浏览8409次 共有3条评论 已被2个人收藏 2013-08-16 21:29 顶(1) 踩(0) osgi原理与最佳实践 1.3 Spring-DM 1.3.1 简介 Spring-DM 指的是 Spring Dynamic Modules.Spring-DM 的主要目的是能够方便地将 Spring 框架 和OSGi框架结合在一起,使得使用Spring的应用程序可以方便简单地部署在OSGi环

atitit.ajax 最佳实践跟框架选型 o99

atitit.ajax 最佳实践跟框架选型 1. 选型框架dwr/dwr3 跟jq 1 2. DWR方便的地方分为两个地方. 1 3. dwr 优点: 1 4. 缺点: 2 5. 根jq的区别 2 1. 选型框架dwr/dwr3 跟jq 2. DWR方便的地方分为两个地方. 前台: 1.前台的js方法的自动生成(由服务端自动发送js脚本到客户端), 用户无需关心,模拟后台的方法调用形式,上手容易. 后台 1.后台获取服务bean的plugin功能. (可以和Spring.Struts集成)提供服