AspnetCore 2.0
AspnetCore 2.0
本文地址
http://www.cnblogs.com/likeli/p/8204054.html
关于
API文档自动生成,用于对APP端的开发帮助文档生成,默认ProtoBuffer传输格式。
本项目并不是RESTful风格,是面向功能的API类型。ApiDoc的作用是根据定义好的API接口和注释来自动生成给内部开发者提供的API对接文档。
欢迎Star一下,后续还会更新配套的SDK自动生成,基于Consul的服务注册与发现等,当然,由于我本人能力有限,菜的很,所以这个工具若是对您有用,并且您有了新的点子,同样欢迎提交您的合并请求,我会认真阅读,并维护好项目。
开源地址
https://github.com/CBDlkl/AspnetCoreApiDoc
Nuget下载
Install-Package AspnetCoreApiDoc
关于ProtoBuffer
官方描述:
Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.
生成文档示例

说明文档
NO.1
引用项目后,在Startup.cs中的ConfigureServices方法加入如下代码,进行服务注册:
//注册API文档服务
services.AddProtoMvc(op =>
{
op.ApiOptions = new ApiOptions
{
//API文档访问的路由; 推荐和API地址访问保持一致
Host = "/core/v1",
ApiName = "样例API文档",
APiVersion = "v1.0",
Copyright = "Copyright©2017-2018 api.com All Rights Reserved. ",
ProtoBufVersion = ProtoBufEnum.Proto3,
NetworkDocs = new List<NetworkDoc>
{
new NetworkDoc
{
Title = "默认网络文档一",
Url = "https://www.baidu.com/"
},
new NetworkDoc
{
Title = "我的博客",
Url = "http://www.cnblogs.com/likeli/"
},
}
};
//此处配置ES日志服务地址
//op.ESOptions = new ESOptions
//{
// Uri = "http://192.168.0.1:9200",
// DefaultIndex = "test-log",
//};
});
NO.2
在Configure方法启用服务:
app.UseStatusCodePages()
.UseApi(); //启用API文档生成
NO.3
在需要生成API文档的控制器Controller``或方法Action上添加ApiDoc特性标记
例如:
Controller上添加:
[ApiDoc, Route("core/v1/[controller]/[action]/")]
public class ApiController
{
...
}
Action上添加:
/// <summary>
/// 获取产品方法2
/// </summary>
/// <param name="input">输入参数</param>
/// <returns>输出参数</returns>
[ApiDoc, HttpPost]
public ProductInput GetProduct2([FromBody] ProductInput input)
{
return new ProductInput {ProductName = "一体机"};
}
在controller上添加ApiDoc特性后,可以在该控制器下的action上再添加ApiDoc(false)来停止某个单独方法的文档生成
NO.4
给API的项目和所有其依赖的项目的.csproj文件中的Project节点下都加上生成XML的配置,如下:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<DocumentationFile>bin\Debug\netcoreapp2.0\{项目名}.xml</DocumentationFile>
<DocumentationFile>bin\Release\netcoreapp2.0\{项目名}.xml</DocumentationFile>
<NoWarn>1701;1702;1705;1591</NoWarn>
</PropertyGroup>
NO.5
通过游览器打开
http://localhost:5000/core/v1/api.do来访问API文档
完整实例:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
//加载日志记录组件
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddSingleton<ESClientProvider>();
//注册API文档服务
services.AddProtoMvc(op =>
{
op.ApiOptions = new ApiOptions
{
//API文档访问的路由; 推荐和API地址访问保持一致
Host = "/core/v1",
ApiName = "样例API文档",
APiVersion = "v1.0",
Copyright = "Copyright©2017-2018 api.com All Rights Reserved. ",
ProtoBufVersion = ProtoBufEnum.Proto3,
NetworkDocs = new List<NetworkDoc>
{
new NetworkDoc
{
Title = "默认网络文档一",
Url = "https://www.baidu.com/"
},
new NetworkDoc
{
Title = "我的博客",
Url = "http://www.cnblogs.com/likeli/"
},
}
};
//此处配置ES日志服务地址
//op.ESOptions = new ESOptions
//{
// Uri = "http://192.168.0.1:9200",
// DefaultIndex = "test-log",
//};
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//启动ES日志服务
//loggerFactory
// .AddESLogger(app.ApplicationServices, "test-log", new FilterLoggerSettings
// {
// {"*", LogLevel.Trace},
// {"Microsoft", LogLevel.Warning},
// {"System", LogLevel.Warning},
// });
app.UseStatusCodePages()
.UseApi(); //启用API文档生成
}
}
约定
- 所有API的方法传入参数必须从Body中读取
版权
本项目采用 MIT 开源授权许可证
AspnetCore 2.0的更多相关文章
- windows 上用 docker 部署aspnetcore 2.0
首先下载docker for windows 并且 安装. 这其中需要显卡支持虚拟化 windows系统升级到专业版 bois 启用虚拟 通过vs2017 创建一个net core ap ...
- CanalSharp.AspNetCore v0.0.4-支持输出到MongoDB
一.多样输出支持 CanalSharp.AspNetCore是一个基于CanalSharp的适用于ASP.NET Core的一个后台任务组件,它可以随着ASP.NET Core实例的启动而启动,目前采 ...
- [AspNetCore 3.0] 在RazorPages/MVC 中使用 Blazor (Razor组件)
开发环境 Vs2019 16.3.1 dotnetcore 3.0 一.开始 新建webapp项目 dotnet new webapp -o projectname 或Vs 中新建项目选择 Web应用 ...
- [AspNetCore 3.0 ] Blazor 服务端组件 Render, RenderFragment ,RenderTreeBuilder, CascadingValue/CascadingParameter 等等
一.组件 支撑Blazor的是微软的两大成熟技术,Razor模板和SignalR,两者的交汇点就是组件.通常,我们从ComponentBase派生的类型,或者创建的.razor 文件,就可以称作组件. ...
- 【开源】AspnetCore 2.0 自动API文档生成组件,支持protobuffer
本文地址 http://www.cnblogs.com/likeli/p/8204054.html 关于 API文档自动生成,用于对APP端的开发帮助文档生成,默认ProtoBuffer传输格式. 本 ...
- x01.SportWeb: An Example for AspNetCore 2.0
新的刚来到,旧的就忘掉.学习 AspNet Core 2.0,没有好的例子,是很痛苦的.<Pro ASP.NET Core MVC 2>中的 SportsStore值得一看,不妨下载研究一 ...
- ASP.NET Core 2.0 in Docker on Windows Container
安装Docker for Windows https://store.docker.com/editions/community/docker-ce-desktop-windows 要想将一个ASP. ...
- docker~aspnetcore2.0镜像缺少libgdiplus问题
回到目录 对于微软官方提供的镜像microsoft/aspnetcore2.0来说,它没有安装libgdiplus包,所以当你使用了draw去画图时,就会出现一些问题,我们一般会安装第三方的包包,ZK ...
- ASP.NET Core 3.0 实战:构建多版本 API 接口
第一次在博客写分享,请多多捧场,如有歧义请多多包含! 因为业务需求发展需要,所以API接口的变更升级是必不可少的事情,而原有的接口是不可能马上停止使用的.例如:Login接口为例,1.0版本之返回用户 ...
随机推荐
- hdu1520树形dp入门
题目链接 题意:要开派对,邀请了上司就不能邀请他的下属,邀请了下属就不能邀请他的上司,每个人有一个值,求邀请的人的总值最大 第一行给出一个数n,代表有n个人. 下面n行分别给出n个人的的值 再下面n行 ...
- install docker
摘要: 我的环境是:CentOS-7-x86_64-Minimal-1511.iso , 也可参考docker官网文档,来安装, url : https://docs.docker.com/engin ...
- win32com操作word(2):常用用法
一.对象的位置关系: 1.Range属性位于(部分): Selection__Section__Cell__Paragraph__Table__Bookmark__Comment__Row__List ...
- Web 攻击之 XSS 攻击及防御策略
XSS 攻击 介绍 XSS 攻击,从最初 netscap 推出 javascript 时,就已经察觉到了危险. 我们常常需要面临跨域的解决方案,其实同源策略是保护我们的网站.糟糕的跨域会带来危险,虽然 ...
- BJOI2018爆零记
没啥可说的 Day1 0分 T1 给你一个二进制串,每次修改一个位置,询问[l,r]区间中有多少二进制子串重排后能被3整除 T2 一个无向图(无重边自环)每个点有一个包含两种颜色的染色集合,一个边的两 ...
- 【Lintcode】013.strStr
题目: For a given source string and a target string, you should output the first index(from 0) of targ ...
- 【LintCode】060.Search Insert Position
题目: Given a sorted array and a target value, return the index if the target is found. If not, return ...
- bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1731 对差分约束理解更深.还发现美妙博客:http://www.cppblog.com/me ...
- SHOI2001化工厂装箱员——记忆化搜索
题目:https://www.luogu.org/problemnew/show/P2530 太弱了不会用DP,于是暴搜: 每次传进一个数组c记录当前状态各种物品有多少个,枚举取哪种物品,返回最小值, ...
- 6 git 生成SSH公钥/私钥 查看公钥
如果没有公钥的话就生成公钥私钥: $ ssh-keygen 然后连续回车(一次是位置,两次密码)