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. Matplotlib绘图设置---图形剖析和构建

    图形剖析和构建 Matplotlib的目标对象是用Python对象表示任意图形元素.Figure对象可以看作盛放图形元素的包围盒,其他的Matplotlib对象(Axes.Title.Grid.Spi ...

  2. HarmonyOS:使用MindSpore Lite引擎进行模型推理

      场景介绍 MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型推理的功能,目前已经在图像分类.目标识别.人脸识别.文字识别等应用中广泛使用. 本文介绍使用MindSpore ...

  3. 整理k8s————k8s prod相关[三]

    前言 简单整理k8s prod. 正文 prod 有两种: 自主式prod 控制器管理的prod 在Kubernetes中,最小的管理元素不是一个个独立的容器,而是Pod,Pod是最小的,管理,创建, ...

  4. 论文记载: Deep Reinforcement Learning for Traffic LightControl in Vehicular Networks

    强化学习论文记载 论文名: Deep Reinforcement Learning for Traffic LightControl in Vehicular Networks ( 车辆网络交通信号灯 ...

  5. eclipse 卡顿的优化办法

    1. 关闭校验 2. 关闭插件自动升级 3.关闭界面设置的一些选项

  6. SnakeYaml反序列化分析

    前言 SnakeYaml是Java中解析yaml的库,而yaml是一种人类可读的数据序列化语言,通常用于编写配置文件等.yaml真是到哪都有啊. 环境搭建 <dependency> < ...

  7. 使用AnalyticDB轻松实现以图搜图和人脸检索

    1. 背景 以图搜图在生活中有着广泛的应用, 当我们在电视上看到有人穿着一件美丽的裙子或者帅气的球鞋也想拥有时, 我们可以拍张照片然后打开淘宝然后上传照片就可以快速的找到这个商品. 我们看到一张电影截 ...

  8. Dubbo 3.0 前瞻系列 | 2020双11,Dubbo3.0 在考拉的超大规模实践

    很多开发者一直以来好奇:阿里自己有没有在用Dubbo,会不会用Dubbo?在刚刚结束的双11,我们了解到阿里云今年提出了"三位一体"的理念,即将"自研技术".& ...

  9. 监控最佳实践--redis及业务接口

    简介: 监控最佳实践--redis及业务接口 1. 背景 1.1 问题 2020-12-04,客户侧redis集群版监控DB0 CPU突增至100%,导致数据库无法正常服务,经排查客户侧业务上存在2M ...

  10. dotnet 是否应该对 HttpResponseMessage 调用 Dispose 进行释放

    对于 HttpClient 的请求响应值 HttpResponseMessage 来说,既然继承了 IDisposable 接口,自然就是想让大家可以通过 using 或者手动调用 Dispose 进 ...