.Net Core 分布式微服务框架 - Jimu 添加 Swagger 支持
系列文章
一、前言
最近有空就优化 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 生成的文档。
a. JimuService 标注是对接口元数据的定义和描述,如创建人、时间、描述、访问角色限制等。
b. JimuFieldComment 标注是对形式参数的注释。
c. JimuReturnComment 标注是对接口的返回类型做注释。
[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
.Net Core 分布式微服务框架 - Jimu 添加 Swagger 支持的更多相关文章
- .Net Core 分布式微服务框架介绍 - Jimu
系列文章 .Net Core 分布式微服务框架介绍 - Jimu .Net Core 分布式微服务框架 - Jimu 添加 Swagger 支持 一.前言 近些年一直浸淫在 .Net 平台做企业应用开 ...
- Net Core 分布式微服务框架
Jimu : .Net Core 分布式微服务框架介绍 https://www.cnblogs.com/grissom007/p/9291345.html 一.前言 近些年一直浸淫在 .Net 平台做 ...
- 推荐一款分布式微服务框架 Surging
surging surging 是一个分布式微服务框架,提供高性能RPC远程服务调用,采用Zookeeper.Consul作为surging服务的注册中心,集成了哈希,随机,轮询,压力最小优先作为 ...
- Surging 分布式微服务框架使用入门
原文:Surging 分布式微服务框架使用入门 前言 本文非 Surging 官方教程,只是自己学习的总结.如有哪里不对,还望指正. 我对 surging 的看法 我目前所在的公司采用架构就是类似与S ...
- [转载]Surging 分布式微服务框架使用入门
前言 本文非 Surging 官方教程,只是自己学习的总结.如有哪里不对,还望指正. 我对 surging 的看法 我目前所在的公司采用架构就是类似与Surging的RPC框架,在.NET 4.0框架 ...
- Dapeng框架-开源高性能分布式微服务框架
我们公司性质是新零售,公司也有专门的框架组.这群大牛自己开发了一整套分布式微服务框架.我们也在使用这套框架,有很多心得体会. 该框架既Dapeng也!开源github地址:https://github ...
- Kite: 一个分布式微服务框架(翻译)
原文链接:https://blog.gopheracademy.com/birthday-bash-2014/kite-microservice-library/ 此为中文翻译 用GO语言来编写web ...
- 我的分布式微服务框架:YC-Framework
YC-Framework官方文档:http://framework.youcongtech.com/ YC-Framework源代码:https://github.com/developers-you ...
- 基于docker 如何部署surging分布式微服务引擎
1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微 ...
随机推荐
- jQuery为元素设置css的问题
例子: 有如下的html代码 对文本框设置字体大小为20px ,即font-size:20px 首先会想到如下: $('input').css({font-size:'20px'}); 由于属性不能使 ...
- 转:双向链表dblinklist
数据结构C#版笔记--双向链表(DbLinkList) 这是数据结构C#版笔记--线性表(Data Structure)之单链表(LinkList)的继续,对于双向链接,节点上除了Next属性外, ...
- FTP 命令的使用
最近需要使用 ftp 工具,所以借此机会来进行整理以下具体的内容: 具体什么是ftp, ftp 能干什么? 请参考: https://access.redhat.com/documentation/e ...
- SpringMVC原理&MVC设计思想
什么是MVC? MVC是一种架构模式 --- 程序分层,分工合作,既相互独立,又协同工作 MVC是一种思考方式 --- 需要将什么信息展示给用户? 如何布局? 调用哪些业务逻辑? MVC流程图如下图所 ...
- Linux下jdk&tomcat的安装
unbantu: 1.下载相应版本的jdk及tomcat:sudo wget ${url} 2.解压: tar zxvf jdk-7u79-linux-x64.tar.gz tar zxvf apa ...
- 有crontab中的脚本不执行,需要在脚本里面export各种环境变量
[oracle@sta ~]$ vi .bash_profile # .bash_profile # Get the aliases and functionsif [ -f ~/.bashrc ]; ...
- leetcode-844 Backspace String Compare
Given two strings S and T, return if they are equal when both are typed into empty text editors. # m ...
- 20175310 《Java程序设计》第1周学习总结(2)
20175310 <Java程序设计>第1周学习总结(2) 教材学习内容总结 本周学习了教材的第一章内容,通过看微课的方式,自主学习,教材上讲的比较简单,主要的问题都在调试代码上,还有一两 ...
- IDEA导包(以junit为例)
## IDEA导包(以junit为例) 1. 准备junit的jar包: * hamcrest-core-1.3.jar * junit-4.12.jar 2. 在项目中新建文件夹:lib 3. 将j ...
- 分布式计算(一)Ubuntu搭建Hadoop分布式集群
最近准备接触分布式计算,学习分布式计算的技术栈和架构知识.目前的分布式计算方式大致分为两种:离线计算和实时计算.在大数据全家桶中,离线计算的优秀工具当属Hadoop和Spark,而实时计算的杰出代表非 ...