ASP.NetCore使用Swagger实战

踩坑不背锅,.NET Core 试深浅 关于Swagger什么是swagger所带来的帮助 使用Swagger

关于Swagger

什么是swagger

使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能。

Swagger™ 的目标是为 REST APIs 定义一个标准的,与语言无关的接口。只需要按照它的规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等。

所带来的帮助

当项目处于启动阶段
如果有了稳定的后台框架,直接依据业务需求编写服务端被调用层的代码(即controller及其入参出参对象),然后通过Swagger生成相关描述文件,使用者就可以直接使用了。
如果后台框架不成熟或在设计中,但是依据业务需求我们可以完成更多的工作而不是等待,先根据数据需求编写Swagger描述文件,通过该描述文件生成接口文档,指引项目的相关开发。
当项目处于迭代阶段
在项目的持续开发中,后端人员无需关注Swagger描述文件和接口文档,有需求变更导致接口变化,可直接编程实现,然后生成新的描述文件和接口文档后,给到前端即可。

使用Swagger

首先,先创建一个新的WebAPI项目,并在Nuget中找到对应的包,搜索Swashbuckle会出现很多应用包,可以根据描述选择自己需要的引用。我在这里使用的是Swashbuckle.AspNetCore.Filters

接下来在Startup中插入如下代码
注册服务

services.AddSwaggerGen(options =>
      {
        options.SwaggerDoc("v1", new OpenApiInfo
        {
          Title = "HTTP API 目录",
          Version = "v1",
          Description = "目录微服务HTTP API。"
        });
      });

中间件

 //启用中间件服务生成Swagger作为JSON终结点
      app.UseSwagger();
      //启用中间件服务对swagger-ui,指定Swagger JSON终结点
      app.UseSwagger().UseSwaggerUI(c =>
      {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
      });

然后,就可以使用了,请求对应地址 https://localhost:44375/swagger/index.html,现在就可以看到示例代码中的WeatherForecast.cs了。

到此这篇关于ASP.NetCore使用Swagger实战的文章就介绍到这了,更多相关ASP.NetCore使用Swagger内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Asp.net core WebApi 使用Swagger生成帮助页实例

    最近我们团队一直进行.net core的转型,web开发向着前后端分离的技术架构演进,我们后台主要是采用了asp.net core webapi来进行开发,开始每次调试以及与前端人员的沟通上都存在这效率低下的问题,一次在看微软asp.net core官方文档的时候,发现了swagger这个好东西.然后在实际的项目中引入了该技术.我们开发人员测试自己写的api的过程大大得到了简化,前端人员也可以根据我们提供的swagger help pages 自己进行一些前端代码的测试,大大提高了前后端的开发效

  • Asp.Net Core使用swagger生成api文档的完整步骤

    前言 .Net Core中有两个集成NSwag的包,分别为Swashbuckle和NSwag.两者的配置大同小异.这里以NSwag为例. 一.前期准备 1.初始化asp.net core 测试项目 新建asp.net core项目,此处略过: 新建apicontroller,并编写测试代码: [Route("api/[controller]")] [ApiController] public class UserApiController : ControllerBase { ///

  • Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

    1.前言 为什么我们要隐藏部分接口? 因为我们在用swagger代替接口的时候,难免有些接口会直观的暴露出来,比如我们结合Consul一起使用的时候,会将健康检查接口以及报警通知接口暴露出来,这些接口有时候会出于方便考虑,没有进行加密,这个时候我们就需要把接口隐藏起来,只有内部的开发者知道. 为什么要分组? 通常当我们写前后端分离的项目的时候,难免会遇到编写很多接口供前端页面进行调用,当接口达到几百个的时候就需要区分哪些是框架接口,哪些是业务接口,这时候给swaggerUI的接口分组是个不错的选

  • 记Asp.Net Core Swagger使用并带域接口处理的方法

    引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升.但是使用Swagger时如果只是一般的控制器直接放到Controller下就可以了,而如果因不同的业务需求而需要分类或者有同名的类名时时则没办法很好的处理. 因为业务需求需要创建域,但是Swagger并未将域添加到接口.所以需要加上以下操作才行. 安装Swagger方法: 为了大家多看微软官方文档.就直接引用Swagger安装及使用方法.

  • asp.net core 3.0中使用swagger的方法与问题

    Intro# 上次更新了 asp.net core 3.0 简单的记录了一下 swagger 的使用,那个项目的 api 比较简单,都是匿名接口不涉及到认证以及 api 版本控制,最近把另外一个 api 项目升级到了 3.0,还是遇到了一些问题,这里单独写一篇文章介绍,避免踩坑. Swagger 基本使用# swagger 服务注册: services.AddSwaggerGen(option => { option.SwaggerDoc("sparktodo", new Ope

  • ASP.NetCore使用Swagger实战

    踩坑不背锅,.NET Core 试深浅 关于Swagger什么是swagger所带来的帮助 使用Swagger 关于Swagger 什么是swagger 使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能. Swagger™ 的目标是为 REST APIs 定义一个标准的,与语言无关的接口.只需要按照它的规范去定义接口及接口相关的信息.再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码

  • .NetCore使用Swagger+API多版本控制的流程分析

    目录 一.Swagger基本使用 二.Swagger结合版本控制 本文实例环境及版本.NetCore3.1.Swagger6.1 现在的开发大部分都是前后端分离的模式了,后端提供接口,前端调用接口.后端提供了接口,需要对接口进行测试,之前都是使用浏览器开发者工具,或者写单元测试,再或者直接使用Postman,但是现在这些都已经out了.后端提供了接口,如何跟前端配合说明接口的性质,参数等这也是一个问题.有没有一种工具可以根据后端的接口自动生成接口文档,说明接口的性质,参数等信息,又能提供接口调用

  • 浅谈ASP.NETCore统一处理404错误都有哪些方式

    目录 方式一 方式二 自定义通配路由 方式三 方式四 方式五 web.config <customErrors> 节点中配置ASP.NET管道处理404错误 总结 当未找到网页并且应用程序返回 404 错误时,ASP.NET Core MVC 仅呈现通用浏览器错误页面,如下图所示 这不是很优雅,是吗?我们平时看到的404页面一般是这样的 还有这样的 试了下京东,地址不存在的时候是会重定向到首页 下面就来演示下ASP.NET Core中如何实现这种自定义的404页面处理. 新建项目 ASP.NE

  • Asp.net6.0 Swagger使用问题及解决过程

    目录 一.在Docker中显示OpenApiInfo的中文内容 二.显示xml注释 三.如何显示Header 四.隐藏ApiController.Action.类或者属性,显示枚举 “五一”期间用了一下Swagger,碰到了以下问题: 如何在Docker中显示OpenApiInfo的中文内容: 如何显示xml注释: 如何显示Header: 如何隐藏ApiController.Action.类或者属性,如何显示枚举 现将解决办法记下留存. 一.在Docker中显示OpenApiInfo的中文内容

  • NetCore 配置Swagger的详细代码

    目录 1.添加Nuget 2.添加静态类扩展方法 3.StartUp注册服务,添加中间件 1.添加Nuget install-package Swashbuckle.AspNetCore -project XXX -version 6.4.0 2.添加静态类扩展方法 2.1.生成项目xml:选中项目 / 右键 / 属性 / 生成 / 输出 / 选中xml文档文件 2.2.system_v1:必须唯一不重复,且[options.SwaggerDoc("system_v1"]必须与[opt

  • ASP.NET MVC错误处理的对应解决方法

    ASP.NET MVC的错误处理应考虑到这几个方面:模型绑定期间发生的错误,未能路由到指定操作,针对控制器的错误处理.使用配置文件可以帮助我们处理异常,但是不够灵活和全面:使用HandleErrorAttribute.自定义错误过滤器或重写控制器OnException方法只能解决针对控制器的错误,无法解决模型绑定期间发生的错误,也无法处理404错误,即使将错误过滤器注册为全局过滤器也是如此.有时候需要多种方法配合使用. 在捕获错误的地方,可以将有用的信息记录下来,便于我们查出引起问题的原因和纠正

  • asp.net core配置文件加载过程的深入了解

    前言 配置文件中程序运行中,担当着不可或缺的角色:通常情况下,使用 visual studio 进行创建项目过程中,项目配置文件会自动生成在项目根目录下,如 appsettings.json,或者是被大家广泛使用的 appsettings.{env.EnvironmentName}.json:配置文件 作为一个入口,可以让我们在不更新代码的情况,对程序进行干预和调整,那么对其加载过程的全面了解就显得非常必要. 何时加载了默认的配置文件 在 Program.cs 文件中,查看以下代码 public

  • 图析ASP.NET Core引入gRPC服务模板

    早就听说ASP.NET Core 3.0中引入了gRPC的服务模板,正好趁着家里电脑刚做了新系统,然后装了VS2019的功夫来体验一把.同时记录体验的过程.如果你也想按照本文的步骤体验的话,那你得先安装.NET Core3.0预览版的SDK.至于开发工具我用的时VS2019,当然你也可以使用VS Code进行. gRPC的简单介绍 gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架. 有关 gRPC 基础知识的详细信息,请参阅 gRPC 文档页. gRPC 的主要优点是: 现代高性

  • Asp.Net Core利用xUnit进行主机级别的网络集成测试详解

    前言 在开发 Asp.Net Core 应用程序的过程中,我们常常需要对业务代码编写单元测试,这种方法既快速又有效,利用单元测试做代码覆盖测试,也是非常必要的事情:但是,但我们需要对系统进行集成测试的时候,需要启动服务主机,利用浏览器或者Postman 等网络工具对接口进行集成测试,这就非常的不方便,同时浪费了大量的时间在重复启动应用程序上:今天要介绍就是如何在不启动应用程序的情况下,对 Asp.Net Core WebApi 项目进行网络集成测试. 一.建立项目 1.1 首先我们建立两个项目,

随机推荐