Asp.Net Core遇到Swagger(一)-Swashbuckle基础篇

简介: Asp.Net Core遇到Swagger(一)-Swashbuckle基础篇

一、前言

作为一名后端,接口开发好了,与前端对接或者三方公司进行对接时,每次反反复复的依靠人力构建接口说明文档,每一次接口变更,输入输出结果字段变化,不胜其烦,能依据接口动态生成api对接文档岂不是更好,有变更,重新生成一下项目就好,还能在线调试接口,后端可控粒度高,你一定脑子里闪过Swagger,废话不多说,冲~

二、概述

Swagger作为一个Api文档生成和展示工具,能够依据一套OpenApi数据规范,自动的从系统中提取的注释信息,生成动态的生成Api说明文档,OpenApi规范本身是脱胎于Swagger

Asp.Net Core中与之对应的类库分别为SwashbuckleNSwag,参考链接:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-5.0&tabs=visual-studio

Swashbuckle 有三个主要组成部分:

  • Swashbuckle.AspNetCore.Swagger:将 SwaggerDocument 对象公开为 JSON 终结点的 Swagger 对象模型和中间件。
  • Swashbuckle.AspNetCore.SwaggerGen:从路由、控制器和模型直接生成 SwaggerDocument 对象的 Swagger 生成器。 它通常与 Swagger 终结点中间件结合,以自动公开 Swagger JSON。
  • Swashbuckle.AspNetCore.SwaggerUI:Swagger UI 工具的嵌入式版本。 它解释 Swagger JSON 以构建描述 Web API 功能的可自定义的丰富体验。 它包括针对公共方法的内置测试工具

NSwag

NSwag 提供了下列功能:

  • 能够使用 Swagger UI 和 Swagger 生成器。
  • 灵活的代码生成功能

借助 NSwag,无需使用现有 API。也就是说,可使用包含 Swagger的第三方 API,并生成客户端实现。 使用 NSwag,可以加快开发周期,并轻松适应 API更改

三、基础应用

本章主要讲解Swashbuckle的基本使用技巧

3.1 开发环境

Windows10

Vs2019

Asp.Net Core 3.1 Web API

3.2 创建项目

选择项目模板为ASP.Net Core Web API项目名称为swaggertestbase,项目依赖的框架版本为.Net Core 3.1

3.3 引用类库包

Nuget包管理页面中的浏览页签,输入swagger进行搜索,找到截图中的对应类库Swashbuckle.AspNetCore.SwaggerGen

Swashbuckle.AspNetCore.SwaggerUI,选择6.0.0,选择安装按钮即可,剩余无脑确定

安装成功后,引用中目录如下:

3.4 基础配置

引入命名空间

Startup.cs中引入Swashbuckle.AspNetCore.SwaggerGen

using Swashbuckle.AspNetCore.SwaggerGen;

注册服务

Startup.csConfigureServices服务中注册服务

......
public void ConfigureServices(IServiceCollection services)
{
    //注册服务
    services.AddSwaggerGen();
    services.AddControllers();
}
......

启用静态文件中间件

由于swagger-ui需要允许客户端访问服务端静态的样式和资源,所以需要服务配置函数Configure路由中间件之前,启用静态中间件UseStaticFiles

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    .....
            //启动静态文件中间
            app.UseStaticFiles();
    .....
        //启动路由中间件
            app.UseRouting();
    .....
}

配置Swagger中间件以及SwaggerUI中间件

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    .....
            //启动静态文件中间
            app.UseStaticFiles();
            #region Swagger中间件相关
            //添加swagger配置,并启动中间件
            app.UseSwagger();
            //启用Swagger-ui中间件,并配置swagger json的请求终节点
            app.UseSwaggerUI();
            #endregion
        //启动路由中间件
            app.UseRouting();
    .....
}

启动项目

访问地址http://localhost:5000/swagger/v1/swagger.json,返回如下结果,标识默认对应Swagger Api Json结果如下:

{
  "openapi": "3.0.1",
  "info": {
    "title": "swaggertestbase",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "http://localhost:5000"
    }
  ],
  "paths": {
    "/WeatherForecast": {
      "get": {
        "tags": [
          "WeatherForecast"
        ]
      }
    }
  }
}

访问地址http://localhost:5000/swagger/index.html,访问结果如下:

以上为默认情况下,Swashbuckle基础的相关内容。


相关文章
|
5天前
|
消息中间件 前端开发 小程序
一个基于.NET Core构建的简单、跨平台、模块化的商城系统
今天大姚给大家分享一个基于.NET Core构建的简单、跨平台、模块化、完全开源免费(MIT License)的商城系统:Module Shop。
|
5天前
|
算法 C# 数据库
【干货】一份10万字免费的C#/.NET/.NET Core面试宝典
C#/.NET/.NET Core相关技术常见面试题汇总,不仅仅为了面试而学习,更多的是查漏补缺、扩充知识面和大家共同学习进步。该知识库主要由自己平时学习实践总结、网上优秀文章资料收集(这一部分会标注来源)和社区小伙伴提供三部分组成。该份基础面试宝典完全免费,发布两年来收获了广大.NET小伙伴的好评,我会持续更新和改进,欢迎关注我的公众号【追逐时光者】第一时间获取最新更新的面试题内容。
|
5天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
5天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
23 0
|
5天前
|
Linux API iOS开发
.net core 优势
.NET Core 的优势:跨平台兼容(Windows, macOS, Linux)及容器支持,高性能,支持并行版本控制,丰富的新增API,以及开源。
28 4
|
5天前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(持续更新)
在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NET Core拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。
|
5天前
|
开发框架 中间件 .NET
C# .NET面试系列七:ASP.NET Core
## 第一部分:ASP.NET Core #### 1. 如何在 controller 中注入 service? 在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用<u>依赖注入(Dependency Injection)</u>来实现。以下是一些步骤,说明如何在Controller中注入服务: 1、创建服务 首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的ConfigureServices方法中完成。例如: ```c# services.AddScoped<IMyService, MyService>(); //
100 0
|
5天前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
41 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
5天前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
48 0
|
5天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
33 0