Asp.Net Core遇到Swagger(三)-Swashbuckle技巧b篇(上)

简介: Asp.Net Core遇到Swagger(三)-Swashbuckle技巧b篇

一、前言

接上篇Swashbuckle技巧a篇,本篇文章继续讲解基于Swashbuckle的实践应用操作和配置。此处为b

二、实践技巧

2.4 修改Swagger Json请求路径

1)默认路径

请求http://localhost:5000/swagger/v1/swagger.json,可查看到Swagger Json结构如下:

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

2)自定义路径

自定义时,需要进行进行模板配置查看和依据实际需求机型节点配置,为Swagger中间件配置SwaggerOptionsRouteTemplate,对应的swagger-ui需要请求的Swagger Json地址也需要进行修改,

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
..........
    #region Swagger中间件相关
    //添加swagger配置,并启动中间件
    app.UseSwagger(options =>
        {
            options.RouteTemplate = "api-docs/{documentName}/swaggerapi.json";
        }
    );
    //启用Swagger-ui中间件,并配置swagger json的请求终节点
    app.UseSwaggerUI(options => {
        options.SwaggerEndpoint("/api-docs/v1/swaggerapi.json","ggcy docs");
    });
    #endregion
...........
}

Swagger Json访问地址变更为http://localhost:5000/api-docs/v1/swaggerapi.json内容不变

其中,RouteTemplate对应的值api-docs/{documentName}/swaggerapi.json,表示对应自定义的匹配路由,在启用SwaggerUI中间件时SwaggerEndpoint指定对应需要访问的Swagger Json,访问路径为/api-docs/v1/swaggerapi.json,其中v1为匹配到{documentName},框架默认的文档名称为v1

2.5 修改文档swagger-ui访问前缀

1)修改前缀

默认情况下,访问Api文档,访问路径一般是xxxxx/swagger/index.html,前缀为swagger,需要自定义前缀时需要进行如下操作:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
..........
    #region Swagger中间件相关
    //添加swagger配置,并启动中间件
    app.UseSwagger(options =>
        {
            options.RouteTemplate = "{documentName}/swaggerapi.json";
        }
    );
    //启用Swagger-ui中间件,并配置swagger json的请求终节点
    app.UseSwaggerUI(options => {
        options.RoutePrefix = "api-docs";
        options.SwaggerEndpoint("/v1/swaggerapi.json","ggcy docs");
    });
    #endregion
...........
}

修改前缀的同时,也需要将Swagger中间件配置中RouteTemplate{documentName}/swaggerapi.json,便于swagger-ui前端请求道对应带有前缀的swagger Json

2)运行效果

运行程序,访问地址http://localhost:5000/api-docs/index.html,出现如下结果

2.6 显示标签描述

1)加载xml注释文件

使用注释文件xml时,需要注意添加.xml文件引入时,注册服务时函数的参数值,

services.AddSwaggerGen(options =>
{
  ...............
    //获取执行目录下的所有解释文件.xml
    Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.xml").ToList().ForEach(file =>
    {
        options.IncludeXmlComments(file,true);
    });
    ................
});

IncludeXmlComments参数解释如下:

//
// 摘要:
//     基于 XML 注释文件为操作、参数和模式注入人性化的描述 
//
// 参数:
//   swaggerGenOptions:
//
//   filePath:
//     包含 XML 注释的文件的绝对路径
//
//   includeControllerXmlComments:
//    用于指示是否应使用控制器 XML 注释(即摘要)的标志
//    分配标签描述。 如果需要要自定义默认值,请不要设置此标志
//    通过 TagActionsBy 标记操作。 
public static void IncludeXmlComments(this SwaggerGenOptions swaggerGenOptions, string filePath, bool includeControllerXmlComments = false)
{
   swaggerGenOptions.IncludeXmlComments(() => new XPathDocument(filePath),includeControllerXmlComments);
}

相关文章
|
2月前
|
开发框架 .NET C#
ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
232 6
|
12月前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
295 5
|
11月前
|
开发框架 .NET API
在 .NET 9 中使用 Scalar 替代 Swagger
在 .NET 9 中使用 Scalar 替代 Swagger
270 29
|
12月前
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
266 1
|
12月前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
328 3
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
439 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
231 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
268 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
330 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
255 0

热门文章

最新文章