ASP.NET Core WebAPI帮助页--Swagger简单使用1.0

1、什么是Swagger?

Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful API,它是为了解决Web API生成有用文档和帮助页的问题。

2、为啥选用swagger?

1)它具有交互式文档、客户端SDK生成和API可发现性等优点。

2)书写api说明文档的工具有很多,但是能称之框架只有swagger

3、Swagger 规范 (swagger.json)

Swagger 流的核心是 Swagger 规范,默认情况下是名为 swagger.json 的文档。 它由 Swagger 工具链(或其第三方实现)根据你的服务生成。 它描述了 API 的功能以及使用 HTTP 对其进行访问的方式。 它驱动 Swagger UI,并由工具链用来启用发现和客户端代码生成。

4、ASP.NET Core 使用Swagger生成api说明文档

4.1引用Nuget包,“Swashbuckle.AspNetCore”

Swashbuckle.AspNetCore 是一个开源项目,用于生成 ASP.NET Core Web API 的 Swagger 文档。

Swashbuckle 有三个主要组成部分:

  • Swashbuckle.AspNetCore.Swagger:将 SwaggerDocument 对象公开为 JSON 终结点的 Swagger 对象模型和中间件。

  • Swashbuckle.AspNetCore.SwaggerGen:从路由、控制器和模型直接生成 SwaggerDocument 对象的 Swagger 生成器。 它通常与 Swagger 终结点中间件结合,以自动公开 Swagger JSON。

  • Swashbuckle.AspNetCore.SwaggerUI:Swagger UI 工具的嵌入式版本。 它解释 Swagger JSON 以构建描述 Web API 功能的可自定义的丰富体验。 它包括针对公共方法的内置测试工具。

4.2添加并配置Swagger中间件

在Startup.cs类中,编辑ConfigureServices方法

public void ConfigureServices(IServiceCollection services)

{

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

services.AddSwaggerGen(c =>

{

c.SwaggerDoc("V1.0", new Swashbuckle.AspNetCore.Swagger.Info

{

Title = "My WebAPI",

Description="API说明文档",

Version = "V1.0",

Contact=new Swashbuckle.AspNetCore.Swagger.Contact { Name="Blog.Core"}

});

});

}

4.3在Startup.cs类中Configure 方法中,启用中间件生成Json文档和SwaggerUI提供服务

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

{

if (env.IsDevelopment())

{

app.UseDeveloperExceptionPage();

}

app.UseSwagger();

app.UseSwaggerUI(c => {

c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Web API");

});

app.UseMvc();

}

到此,已经完成Swagger的添加,启动项目,在端口后面输入/Swagger,然后回车,就可看到生成API文档效果了

注意:如果ConfigureServices 方法中的  services.AddSwaggerGen 注册的一个名字 c.SwaggerDoc("v1.0"的V1.0, 和Configure 方法中的app.UseSwaggerUI(c => {

c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Web API");

})的V1不一致,将会出现下面的bug

5、总结

通过本篇文章的简单介绍,我们可以简单了解到:

1、什么是Swagger?

2、swagger的优点。

3、ASP.NET Core 使用Swagger生成api说明文档。

4、ASP.NET Core使用Swagger中常遇到的错误

 源码已经放到Github上面,地址是:https://github.com/xiaoerhao/Blog.Core

写博客也是为了督促自己学习和记录学习的内容,最后感谢"老张的哲学"对于知识的分享,很多时候都是在他们这些前辈的基础上去学习,下一次再分享关于swagger api文档注释和汉化。

640?wx_fmt=jpeg

原文地址:https://www.cnblogs.com/Erhao/p/11016133.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Global Round 12 E. Capitalism 差分约束

传送门 题意: 思路: 一开始被题意迷惑了,没看出来差分约束,老菜鸡啦。首先看到ajai1a_ja_i1aj​ai​1可以把aia_iai​分成奇偶,让后这个图就变成一个二分图了。再考虑如何连边: (1) 对于b1b1b1的情况&…

8个月打磨,一份送给程序员的「分布式系统」合集

这里是Z哥的个人公众号每周五早8点 按时送达当然了,也会时不时加个餐~我的第「75」篇原创敬上整理好的文章目录在文末,可直接拉到最后是的,这份礼物最佳受众是程序员。但是,如果你不是程序员,相信这些能使你…

【翻译】无需安装Python,就可以在.NET里调用Python库

原文地址:https://henon.wordpress.com/2019/06/05/using-python-libraries-in-net-without-a-python-installation/pythonnet这个屌爆的项目的出现,使得我们可以用一种新的方式,让C#可以和Python之间进行互操作。但是它的设置和部署可能有点…

Codeforces Round #706 (Div. 2) E. Garden of the Sun 思维构造

传送门 题意: 给你一个nmnmnm的矩阵,其中包含字符′.′.′.′和′X′X′X′,你可以将任何′.′.′.′改成′X′X′X′,现在问你能否通过修改一些′.′.′.′来使′X′X′X′联通且不存在环。保证原本的′X′X′X′没有任何两个相…

Ocelot(六)- 架构图

简介Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、k8s 集成。这些功能只都只需要简单的配置即可完成。架构图Ocelot的目标是使用…

基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体

LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法开源地址 https://github.com/liningit/LnskyDB在此非常感谢SkyChenSky其中lambda表达式的解析参考了他的开源项目下面是用ProductSaleByDayEntity作为示例,其中StatisticalDate为分库分表字段,如…

P1297 [国家集训队]单选错位 期望

传送门 题意&#xff1a; 思路&#xff1a; 手推了一下没想到还真的能过。 对于相邻的两个数aia_iai​和ai1a_{i1}ai1​&#xff0c;分两种情况讨论&#xff1a; (1) ai<ai1a_i<a_{i1}ai​<ai1​ 时&#xff0c;答案在[1,ai][1,a_i][1,ai​]的范围内概率为aiai1\fra…

也读《人月神话》:没有银弹的软件工程

一、关于人月神话这本书记得在上大学的时候&#xff0c;就经常听学长和老师讲起《人月神话》&#xff0c;但是却一直没有阅读。记得当时一听到这个书名&#xff0c;还以为是个神马科幻类别的书&#xff0c;结果是个软件工程方面的书籍。这本书是“图灵奖得主、“IBM360系统之父…

P6154 游走 概率dp

传送门 题意&#xff1a; 思路&#xff1a; 给你个DAGDAGDAG&#xff0c;由于每一条路径出现概率相等&#xff0c;那么期望就是总长度路径个数\frac{总长度}{路径个数}路径个数总长度​。设f[i]f[i]f[i]表示到iii这个点的总长度&#xff0c;g[i]g[i]g[i]表示到iii这个点路径的…

[译]如何在C#中调试LINQ查询

LINQ是我在C#中最喜欢的功能之一。它让代码看起来更漂亮美观。我们得到了一个易于编写和理解的简洁函数式语法。好吧&#xff0c;至少我们可以使用LINQ方法的语法风格。LINQ很难进行调试。我们无法知道该查询内部发生了什么。我们可以看到输入和输出&#xff0c;但这就是它的全…

CodeForces - 375D Tree and Queries 树启 + 思维

传送门 题意&#xff1a; 思路&#xff1a; 很明显子树问题会想到树启&#xff0c;让后如何updateupdateupdate呢&#xff1f;一个显然的思路就是维护一个树状数组&#xff0c;查询次数>kj>k_j>kj​的个数。但是这样复杂度是O(nlog2n)O(nlog^2n)O(nlog2n)的&#xf…

WebSocket数据加密——AES与RSA混合加密

前言之前在写“一套简单的web即时通讯”&#xff0c;写到第三版的时候没什么思路&#xff0c;正好微信公众号看到一篇讲API交互加密&#xff0c;于是就自己搞了一套AES与RSA混合加密&#xff0c;无意中产生应用在WebSocket想法&#xff0c;好在思路都差不多&#xff0c;稍微改动…

基于 EntityFramework 生成 Repository 模式代码

借助 WeihanLi.EntityFramework 实现简单的 RepositoryIntro很多时候一些简单的业务都是简单的增删改查&#xff0c;动态生成一些代码完成基本的增删改查&#xff0c;而这些增删改查代码大多类似&#xff0c;只有一些有复杂业务逻辑的可能需要手动去写。于是实现了一个基于 EF …

P3168 [CQOI2015]任务查询系统 主席树 + 差分

传送门 题意&#xff1a; 思路&#xff1a; 题目中(si,ei,pi)(s_i,e_i,p_i)(si​,ei​,pi​)转换成操作即为在[si,ei][s_i,e_i][si​,ei​]区间内加上pip_ipi​的优先级&#xff0c;让后查询的话就是查询第xix_ixi​秒优先级最小的kik_iki​个任务的优先级之和。可知这两个操…

asp.net core 系列之Performance的 Response compression(响应压缩)

本文&#xff0c;帮助了解响应压缩的一些知识及用法(大部分翻译于官网,英文水平有限,不准确之处,欢迎指正)。什么是响应压缩&#xff1f;响应压缩简单的说就是为了减少网络带宽&#xff0c;而把返回的响应压缩&#xff0c;使之体积缩小&#xff0c;从而加快响应的一种技术(个人…

Codeforces Round #603 (Div. 2) E. Editor 线段树维护括号序列

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 首先一个括号序列合法的条件可以转化成两个(左括号代价为111&#xff0c;右括号代价为−1-1−1)&#xff1a; (1) 左括号个数等于右括号个数。 (2) 括号的前缀和非负。 所以我们直接用线段…

从ASP.NET Core 3.0 preview 特性,了解CLR的Garbage Collection

前言在阅读这篇文章&#xff1a;Announcing Net Core 3 Preview3的时候&#xff0c;我看到了这样一个特性&#xff1a;Docker and cgroup memory LimitsWe concluded that the primary fix is to set a GC heap maximum significantly lower than the overall memory limit as …

asp.net core使用serilog将日志推送到腾讯云日志服务

为什么是serilog&#xff1f;Serilog是 .NET 中最著名的结构化日志类库。基于日志事件log events&#xff0c;而不是日志消息log message。你可以将日志事件格式化为控制台的可读文本或者可以将相同的事件格式化为JSON并将其发送到远程日志服务器。应用程序中的日志语句会创建L…

P5787 二分图 /【模板】线段树分治

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 线段树分治就是在线段树上进行遍历&#xff0c;到每个点都加上它对子节点的贡献&#xff0c;最后到叶子节点的时候算一下贡献。 对于这个题先考虑维护二分图的话&#xff0c;可以用扩展域并…

微软发布 VS Code Java 安装程序,一键安装所有 Java 开发环境

北京时间 2019 年 6 月 14 日 &#xff0c;微软发布了 VS Code Java 安装程序&#xff0c;方便开发者能一键安装所有 Java 开发环境。几乎是在三年前&#xff0c;在微软苏黎世办公室的编程马拉松中&#xff0c;来自 Red Hat&#xff0c;IBM&#xff0c;Codenvy 和 Microsoft 的…