Swagger UI 及Swashbuckle

一、概念:

Swagger网站可知,Swagger是展示RESTful API的简单而强大的方法,它为此API提供了强大的接口。

Swashbuckle GitHub可知,Swashbuckle可将Swagger无缝添加到WebApi中!将ApiExplorer与Swagger/swagge-ui 合并可以给 API 用户带来丰富的探索、文件和操作体验。除Swagger生成器外,Swashbuckle还包含嵌入式版本的swagger-ui。

二、使用

1、使用包命令添加到项目

install-package Swashbuckle,会自动检测当前项目的环境添加依赖项。

2、生成xml文档文件

项目属性->勾选生成xml文档文件

3、修改SwaggerConfig文件,设置接口描述xml路径地址

c.IncludeXmlComments($"{System.AppDomain.CurrentDomain.BaseDirectory}/bin/{thisAssembly.GetName().Name}.XML");

4、汉化

a、添加自定义JS汉化包。

b、加载自定义汉化包:

//路径规则,项目命名空间.文件夹名称.js文件名称
c.InjectJavaScript(thisAssembly, "Unisoft.WeChat.Content.swaggerui.swagger_lang.js");

具体参考:http://www.cnblogs.com/yanweidie/p/5709113.html

5、自定义参数及OAuth2授权

a、自定义参数代码

/// <summary>
    /// 自定义参数
    /// </summary>
    public class CustomParameterFilter : IOperationFilter
    {
        public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
        {
            if (operation.parameters == null)
                operation.parameters = new List<Parameter>();
            var filterPipeline = apiDescription.ActionDescriptor.GetFilterPipeline();
            //判断是否添加权限过滤器
            var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Instance).Any(filter => filter is IAuthorizationFilter);
            //判断是否允许匿名方法
            var allowAnonymous = apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any();

            //不含请求参数
            if (!operation.parameters.Any())
            {
                //判断是否为POST请求
                var isPost = apiDescription.HttpMethod.Method.ToLower() == "post";
                if (isPost)
                {
                    //添加POST参数
                    operation.parameters.Add(new Parameter
                    {
                        name = "body",
                        @in = "body",
                        description = "test",
                        required = false
                    });
                }
            }

            //添加认证参数
            if (isAuthorized && !allowAnonymous)
            {
                operation.parameters.Add(new Parameter
                {
                    name = "token",
                    @in = "query",
                    description = "认证参数",
                    required = true,
                    type = "string",
                    @default = "[email protected]"
                });
            }
        }
    }

b、使用自定义参数

c.OperationFilter<CustomParameterFilter>();

具体参考:https://stackoverflow.com/questions/28033857/web-api-with-oauth-using-swagger-swashbuckle

其它资料参考:https://www.codeproject.com/Articles/1078249/RESTful-Web-API-Help-Documentation-using-Swagger-U#_articleTop

时间: 2024-11-10 02:18:22

Swagger UI 及Swashbuckle的相关文章

RESTful Web API Help Documentation using Swagger UI and Swashbuckle

Sign in home articles Chapters and Sections> Search Latest Articles Latest Tips/Tricks Top Articles Beginner Articles Technical Blogs Posting/Update Guidelines Article Help Forum Article Competition  Submit an article or tip  Post your Blog quick ans

使用 Swagger UI 与 Swashbuckle 创建 RESTful Web API 帮助文件

作者:Sreekanth Mothukuru 2016年2月18日 本文旨在介绍如何使用常用的 Swagger 和 Swashbuckle 框架创建描述 Restful API 的交互界面,并为 API 用户提供丰富的探索.文件和操作体验. 源代码: 下载 SwaggerUi_2.zip 步骤 在本文中,我们将在 Asp.Net 创建一个简单的 Restful API,并整合 Swashbuckle 和 Swagger UI.本文分为三部分. 创建 Asp.Net Web API项目 通过实体数

Swagger UI教程 API 文档神器 搭配Node使用 web api 接口文档 mvc接口文档

两种方案 一.Swagger 配置 web Api 接口文档美化 二.通过NodeJS 发布Swagger UI 配置api 文档 先说一下简单的 Swagger 配置 web Api  Swagger-UI本身只提供在线测试功能,要集成它还需要告诉它本项目提供的各种服务和参数信息.这里就需要一些工作量了,不过好在许多第三方库已经给我们完成了这一工作.我这里用的是Swashbuckle,使用它也比较简单,直接使用Nuget添加其程序包即可: 1.初始化包  PM> Install-Package

Swagger UI in AspNetCore WebAPI

Swagger其实包含了三个部分,分别是Swagger Editor文档接口编辑器,根据接口文档生成code的Swagger Codegen,以及生成在线文档的Swagger UI.在AspNetCore中通常使用Microsoft封装的Swashbuckle来使用Swagger UI,这是一个AspNetCore的中间件.和其他中间件一样都是分为register和use两个部分. Installation VS中很简单,直接用NuGet安装Swashbuckle.AspNetCore即可. 或

gRPC helloworld service, RESTful JSON API gateway and swagger UI

概述 本篇博文完整讲述了如果通过 protocol buffers 定义并启动一个 gRPC 服务,然后在 gRPC 服务上提供一个 RESTful JSON API 的反向代理 gateway,最后通过 swagger ui 来提供 RESTful JSON API 的说明,完整代码 helloworld_restful_swagger. Helloworld gRPC Service 参考 gRPC Quick Start for Python. Install gRPC 安装 gRPC 运

Swagger UI教程 API 文档神器 搭配Node使用

ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger 生成 ASP.NET Web API 前言 swagger ui是一个API在线文档生成和测试的利器,目前发现最好用的. 为什么好用?Demo 传送门 支持API自动生成同步的在线文档 这些文档可用于项目内部API审核 方便测试人员了解API 这些文档可作为客户产品文档的一部分进行发布 支持API规范生成代码,生成的客户端和服务器端骨架代码可以加速开发和测试速度 总结一句话就是好用,逼格高.下面我将总结一下如

swagger ui js 错误:Failed to execute &#39;serializeToString&#39; on &#39;XMLSerializer&#39;: parameter 1 is not of type &#39;Node&#39;.

经过排查,引发此错误的原因是,表中有一个字段名称为"NodeName",应该是在前台xml解析时引发冲突所致.我的解决办法是: 修改列名,修改映射. 如下: [Column("NodeName")] public string Name { get; set; } ps:说下我的思路,前台错误处打上断点,循环跳出(或者F8),注意观察出错时的节点名,见下图: 根据此法快速定位到解析错误的表名,然后根据排除法,一个一个注释掉字段,找到出错的字段.剩下的就好办了. sw

ASP.NET Zero--基于令牌的认证&amp;SWAGGER UI

基于令牌的认证 任何应用程序都可以将应用程序中的任何功能认证和使用为API.例如,您可以创建一个移动应用程序消耗相同的API.在本节中,我们将演示来自Postman的API (Google Chrome扩展程序)的用法. 认证 我们建议您禁用用于远程身份验证的用户的双因素身份验证.否则,客户端应该实现两个因素认证流程.我们假设您已经 为默认租户的管理员用户禁用了双因素身份验证,因为我们将在此示例中使用它. 应为所有请求配置以下标题(Abp.TenantId为默认租户的Id),单个租户应用程序不需

Authorize requests in Swagger UI

Authorize requests in Swagger UI 前面的文章讲到了Swagger+ASP.NET Core的使用,这里讲怎么把授权认证加入Swagger中. 国外的一篇文章:https://ppolyzos.com/2017/10/30/add-jwt-bearer-authorization-to-swagger-and-asp-net-core/ app.UseSwaggerUi3(typeof(Startup).GetTypeInfo().Assembly, setting