1,开启swagger :

c.IncludeXmlComments(GetXmlCommentsPath());

protected static string GetXmlCommentsPath()
{
return string.Format(@"{0}\bin\{1}.xml", System.AppDomain.CurrentDomain.BaseDirectory
, Assembly.GetExecutingAssembly().GetName().Name);
}

2,在外网访问时swagger提示错误:

当我尝试看到swagger UI时,我很好地获得了API的文档但是在一段时间后它在按钮上显示了一些错误图标 .

错误消息如下所示:

[{“level”:“error”,“message”:“无法从文件中读取http:// MYIP / swagger / docs / v1”}]

我不确定是什么导致它 . 如果我刷新它工作并在几秒后显示错误 .

可以对如下代码进行设置:

//c.SetValidatorUrl("http://localhost/validator");
c.DisableValidator();

3,在web项目下

a,找到Scripts目录

b,创建Swagger目录

c,创建 swagger_lang.js 文件,把 "swagger_lang.js" 文件的生成操作,改为  “嵌入的资源”

d,c.InjectJavaScript(thisAssembly, $"{thisAssembly.GetName().Name}.Scripts.Swagger.swagger_lang.js");

4,swagger 没有显示方法名

要在swagger文档中显示接口的方法名,只需修改路由模版就可以了。修改后的代码如下:

config.Routes.MapHttpRoute(
name: "DefaultApi",
//routeTemplate: "api/{controller}/{id}",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);

5,swagger 添加 token

在 SwaggerConfig.cs  文件中,添加

c.OperationFilter<AuthTokenHeaderParameter>();

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http.Description;
using Swashbuckle.Swagger; namespace Coordinator.MvcWebAPI
{
public class AuthTokenHeaderParameter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
operation.parameters = operation.parameters ?? new List<Parameter>();
////var filterPipeline = apiDescription.ActionDescriptor.GetFilterPipeline(); //判断是否添加权限过滤器
////var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Instance).Any(filter => filter is IAuthorizationFilter); //判断是否允许匿名方法
var isNeedLogin = apiDescription.ActionDescriptor.GetCustomAttributes<AuthenticationAttribute>().Any();
if (isNeedLogin)
{
operation.parameters.Add(
new Parameter
{
name = "Authorization",
@in = "header",
description = "Bearer Token",
required = true,
type = "string"
}
);
}
}
}
}

6,Controller 加备注信息,过滤掉部分 Controller

c.DocumentFilter<ApplyDocumentVendorExtensions>();

    public class ApplyDocumentVendorExtensions : IDocumentFilter
{
public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer)
{
// Controller 加备注信息
swaggerDoc.tags = new List<Tag>
{
new Tag{ name="Auth", description="安全认证中心"},
new Tag{ name="Upload", description="文件传输接口" }
}; //过滤掉部分 Controller
//var paths = new Dictionary<string, PathItem>(swaggerDoc.paths);
//swaggerDoc.paths.Clear();
//foreach (var path in paths)
//{
// if (path.Key.Contains("Values"))
// swaggerDoc.paths.Add(path);
//}
}
}

swagger 的配置的更多相关文章

  1. .NetCore WebApi——Swagger简单配置

    在前后端分离的大环境下,API接口文档成为了前后端交流的一个重点.Swagger让开发人员摆脱了写接口文档的痛苦. 官方网址:https://swagger.io/ 在.Net Core WebApi ...

  2. swagger-ui 系统配置过程(基于spring+springmvc+swagger+springfox配置 web-api 管理系统)

    web工程部分框架信息:spring springmvc swagger springfox maven 参考文档:https://www.cnblogs.com/exmyth/p/7183753.h ...

  3. Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题

    现在用Swagger来生成API文档的例子已经非常多了,今天碰到开发同事问了一个问题,帮着看了一下,主要还是配置方法的问题,所以记录一下.如果您也碰到了同样的问题,希望本文对您有用. 问题描述 @Ap ...

  4. cxf-rs 、spring 和 swagger 环境配置切换【github 有项目】

    环境切换的目的是 准生产和生产环境切换时,只修改一个文件就可以达到效果 在spring bean 文件中 配置: <bean class="cn.zno.common.context. ...

  5. swagger简单配置

    第一步: 在nuget.org中查找Swashbuckle并下载 在nuget.org中查找Swagger.net.UI,并下载 第二步: 下载完之后,App_Start多了三个文件 Swagger. ...

  6. API文档自动生成,Swagger的配置

    ASP.NET的部署方式 第一步:引用程序集 打开NuGet程序包管理器,搜索Swagger,安装第一个,注意画圈的地方, 已经包含主程序和UI了,安装完成后会在根目录App_Start文件夹下生成S ...

  7. Swagger .Net配置

    1.NuGet 下载安装 Swagger Install-Package Swashbuckle -Version 5.5.3 2.http://localhost:xxx/swagger 3. 4. ...

  8. Swagger相关配置记录

    1.SwaggerConfig文件配置 public class SwaggerConfig { protected static string GetXmlCommentsPath() { retu ...

  9. swagger的配置

    // This method gets called by the runtime. Use this method to add services to the container. public ...

  10. SpringBoot初探之Swagger配置

    Swagger是一个用于描述和测试restful接口的工具,只要在定义restful接口时增加一些类和方法的描述注解,通过很简单的配置就可以得到一个展示接口定义页面,也可以在页面上设置参数提交测试接口 ...

随机推荐

  1. RabbitMQ 09 主题模式

    主题模式 主题模式结构图: 主题模式实际上就是一种模糊匹配的模式,可以将routingKey以模糊匹配的方式去进行转发. 可以使用*或#来表示: *:任意的一个单词. #:0个或多个单词. 定义配置类 ...

  2. std::thread 二:互斥量(多个互斥量的解决方法)

    // *:这里的lock是函数模板,最少传两个互斥量 // 第一种,使用 lock 和 unlock std::mutex m_mutex1; std::mutex m_mutex2; std::lo ...

  3. openGauss数据与PostgreSQL的差异对比

    openGauss 数据与 PostgreSQL 的差异对比 前言 openGauss 数据库已经发布 2.0.1 版本了,中启乘数科技是一家专业的专注于极致性能的数据库服务提供商,所以也关注 ope ...

  4. Pytorch-tensor的创建,索引,切片

    1.基本概念 标量:就是一个数,是0维的,只有大小,没有方向 向量:是1*n的一列数,是1维的,有大小,也有方向 张量:是n*n的一堆数,是2维的,n个向量合并而成 2.a.size(),a.shap ...

  5. ES6中数组新增了哪些扩展?

    一.扩展运算符的应用 ES6通过扩展元素符...,好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3])// 1 2 3console.l ...

  6. Oracle sql 判断全角字符

    (lengthb(MC) - length(MC))<>(lengthb(to_single_byte(MC)) - length(to_single_byte(MC)))

  7. 通过ORPO技术微调 llama3大模型(Fine-tune Llama 3 with ORPO)

    1f45bd1e8577af66a05f5e3fadb0b29 通过ORPO对llama进行微调 前言 ORPO是一种新颖的微调技术,它将传统的监督微调和偏好对齐阶段整合到一个过程中.这减少了训练所需 ...

  8. Redis消息队列发展历程

    ​简介:Redis是目前最受欢迎的kv类数据库,当然它的功能越来越多,早已不限定在kv场景,消息队列就是Redis中一个重要的功能.Redis从2010年发布1.0版本就具备一个消息队列的雏形,随着1 ...

  9. 阿里云消息队列 RocketMQ 5.0 全新升级:消息、事件、流融合处理平台

    ​简介: RocketMQ5.0 的发布标志着阿里云消息从消息领域正式迈向了"消息.事件.流"场景大融合的新局面.未来阿里云消息产品的演进也将继续围绕消息.事件.流核心场景而开展. ...

  10. 使用 DISM 安全清理 C 盘 WinSxS 文件夹空间

    本文将介绍如何使用系统内置 DISM 工具进行安全清理 C 盘空间,清理 WinSxS 文件夹里面的可回收删除的程序包空间 开始之前,先使用管理员权限打开 CMD 或 PowerShell 命令行窗口 ...