ABP官方文档(三十二)【集成Swagger UI】

【框架】ABP(ASP.NET Boilerplate Project) ABP架构是“ASP.NET Boilerplate Project”(ASP.NET样板项目)的简称,它是一个基于领域驱动设计(DDD)的开源应用程序框架,支持.NET Framework和.NET Core。ABP旨在成为开发现代WEB应用程序的新起点,通过提供最佳实践和流行技术,帮助开发者快速构建和扩展应用程序。 阅读详情

5.4 ABP分布式服务 - 集成SwaggerUI

5.4.1 简介

从官网得知,开启Swagger,你可以获得一个交互式的文档,生成和发现客户端SDK。

5.4.2 ASP.NET Core

1. 安装

你可以很容易的集成Swagger到基于ASP.NET Core的 ABP项目。

2. 安装Nuget包

安装 Swashbuckle nuget包到你的Web项目。

3. 配置

在 Startup.cs 文件中找到 ConfigureServices 方法,并在该方法中为Swagger添加配置代码。

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    //其它代码...
    
    services.AddSwaggerGen();
    
    //其它代码...
}

然后在 Startup.cs 的 Configure 方法中添加如下配置:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    //其它代码...

    app.UseSwagger();
    app.UseSwaggerUi(); //URL: /swagger/ui
}

在你使用 swgger ui 测试动态 Web Api 的时候,为了同时能够发送 CSRF token,你需要添加 swgger ui的 index.html 文件到你的web项目。该文件应该精确的放在 wwwroot\swagger\ui 文件夹下。然后你需要更改swagger ui的index.html中已定义的 onComplete 方法,如下所示:

onComplete: function(swaggerApi, swaggerUi){
  if(typeof initOAuth == "function") {
    initOAuth({
      clientId: "your-client-id",
      clientSecret: "your-client-secret-if-required",
      realm: "your-realms",
      appName: "your-app-name",
      scopeSeparator: " ",
      additionalQueryStringParams: {}
    });
  }

  if(window.SwaggerTranslator) {
    window.SwaggerTranslator.translate();
  }

  var csrfToken = abp.security.antiForgery.getToken();
  var csrfCookieAuth = new SwaggerClient.ApiKeyAuthorization(abp.security.antiForgery.tokenHeaderName, csrfToken, "header");
  swaggerUi.api.clientAuthorizations.add(abp.security.antiForgery.tokenHeaderName, csrfCookieAuth);

}

了解更多的配置选项请参考Swashbuckle的文档。

5.4.3 ASP.NET 5.x

1. 安装

你可以很容易的集成Swagger到基于ABP创建的项目中。

2. Nuget安装

安装 Swashbuckle.Core到你的WebApi项目或者Web项目

2. 配置

在你的模块的 Initialize 方法中添加配置Swagger的代码,如下所示:

public class SwaggerIntegrationDemoWebApiModule : AbpModule
{
    public override void Initialize()
    {
        //其它代码...

        ConfigureSwaggerUi();
    }

    private void ConfigureSwaggerUi()
    {
        Configuration.Modules.AbpWebApi().HttpConfiguration
            .EnableSwagger(c =>
            {
                c.SingleApiVersion("v1", "SwaggerIntegrationDemo.WebApi");
                c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
            })
            .EnableSwaggerUi(c =>
            {
                c.InjectJavaScript(Assembly.GetAssembly(typeof(AbpProjectNameWebApiModule)), "AbpCompanyName.AbpProjectName.Api.Scripts.Swagger-Custom.js");
            });
    }
}

注意:在配置swagger ui的时候,我们注入的脚本文件名称是 Swagger-Custom.js。当你使用swagger ui来测试动态web api的时候,这个脚本文件被用来添加 CSRF token 到你的请求头中。你需要添加这个文件到你的WebApi项目中,并使用它的逻辑名(例如:你的项目名称.文件夹名称.脚本文件名称)在InjectJavaScript方法中注入它,该脚本文件一定要设置为 Embedded Resource。

该文件中的脚本内容如下:

var getCookieValue = function(key) {
    var equalities = document.cookie.split('; ');
    for (var i = 0; i < equalities.length; i++) {
        if (!equalities[i]) {
            continue;
        }

        var splitted = equalities[i].split('=');
        if (splitted.length !== 2) {
            continue;
        }

        if (decodeURIComponent(splitted[0]) === key) {
            return decodeURIComponent(splitted[1] || '');
        }
    }

    return null;
};

var csrfCookie = getCookieValue("XSRF-TOKEN");
var csrfCookieAuth = new SwaggerClient.ApiKeyAuthorization("X-XSRF-TOKEN", csrfCookie, "header");
swaggerUi.api.clientAuthorizations.add("X-XSRF-TOKEN", csrfCookieAuth);

更多配置请参考Swashbuckle文档

5.4.4. 测试

按照如上配置后,让我们来浏览下文档 /swagger/ui/index:

images/5.4.1.png

你能看到所有的 Web Api Controllers 包括动态 Web Api Controllers,并且现在你可以测试它们。

ABP框架之OpenIddict分布式认证授权学习手册v1.0 快进来,带你入坑~~~ 立即下载

相关推荐

【RandLA-Net实战】从零构建隧道点云数据集并训练大场景语义分割模型

本文详细介绍了如何使用RandLA-Net构建隧道点云数据集并进行大场景语义分割模型训练。从数据采集、标注到模型训练与优化,提供了完整的实战指南,特别针对隧道场景的特殊挑战提出了解决方案。通过实际案例展示了RandLA-Net在处理大场景点云数据时的高效性和准确性,为隧道巡检等工程应用提供了可靠的技术支持。

weixin_30485379的博客 115

ABP学习实践(五)--引入Swagger对API接口进行管理

以目前流行的前后端分离模式来看,ABP框架更适用于后端开发,而对API接口的管理就成了一项必不可少的功能。 1.安装Swashbuckle.AspNetCore 使用Nuget管理器在分布式服务层和展现层AbpDemo.Web安装Swashbuckle.AspNetCore程序包,包含Swashbuckle.AspNetCore.Swagger、Swashbuckle.AspNetCore.Sw...

lordwish的专栏 3682

Android开发Intent详解

本文详解Android开发Intent。

qq_30725967的博客 2415

abp vnext中swagger使用小结

文章目录介绍先决条件具体说明模块类添加Swagger配置类1、接口分组2、接口注释3、JWT认证的安全锁显示4、枚举注释的显示总结 介绍 现在大多工作中用到的后端开发都是基于RESTFUL的接口开发了,所以使用swagger进行接口管理也就成了比较默认的方式。最近相对比较有时间,所以觉得可以把在abp vnext中使用swagger的一些知识点进行一下总结。 先决条件 VS 2019 Abp VNext 的版本号:4.0.0 Swashbuckle.AspNetCore 版本号:5.5.0 Swashbu

寒冰屋的专栏 4508

(八)基于MuJoCo的LeRobot SO100仿真操控实战指南(操作优化)

本文详细介绍了如何在MuJoCo仿真环境中搭建并优化LeRobot SO100机械臂的操控。通过两种核心模式(纯键盘仿真与实机镜像同步)的实战演示,重点讲解了关键的参数标定方法,以实现虚拟模型与真实硬件的精准同步。文章还提供了性能优化技巧,旨在帮助开发者构建高效、安全的机器人算法开发与测试流程。

weixin_29083649的博客 319

M2DGR数据集在一些SLAM框架上的配置与运行:ORB-SLAM系列、VINS-Mono、LOAM系列、FAST-LIO系列、hdl_graph_slam

为了说明以上这些SLAM框架的测试与数据集适配,以M2DGR数据集为例进行各自的配置与运行,方便我以后适配自己的数据集,运行的SLAM框架包括:ORB-SLAM2、ORB-SLAM3、VINS-Mono、A-LOAM、LeGO-LOAM、LIO-SAM、LVI-SAM、FAST-LIO2、FAST-LIVO、Faster-LIO、hdl_graph_slam。实验基于Ubuntu20.04,其中ORB、VINS-Mono、和LOAM系列的安装参考我以前的博客,有详细的安装方法,其他的框架在后面会简单介绍一下

zardforever123的博客 1万+

ABP教程-给项目添加SwaggerUI,生成动态webapi

上一篇,我们是正式将ABP生成的代码项目,跑起来了,然后演示了下多租户的不同。那么这篇我们就来实现下SwaggerUI。 Q:SwaggerUI是干什么的呢? A:他是一个能将我们的webapi,通过Swagger Api来生成一个交互式的文档。通过他可以对你的接口进行调式。 1、引入Swashbuckle.core 选择PhoneBook.WebApi,然后添加nuget包(当然你也可以通过命令...

weixin_30613727的博客 588

Dirsearch的下载、安装和使用(全)

Dirsearch工具的下载、安装和使用,超详细超全面

weixin_68416970的博客 1万+

.NET 6 之 ABP vNext 初体验

马上国庆了,dotNative 预祝大家假期愉快,Happy National Day!本文将介绍在.net6平台的asp.net core webapi框架中,如何使用abp vnext框架进行模块化开发,重在思想理解。ABP vNext 介绍官方介绍ABP vNext 本身是一个包含许多 NuGet 包的 模块化(Module) 框架。它还提供了一个完整的基础架构来开发你自己的具有...

dotNET跨平台 5628

BMW Trojan 样本分析

仅用于链接已经删却但是需要方便查阅的原文http://blog.csdn.net/zirconsdu/article/details/7997470 转载请注明出处http://blog.csdn.net/zirconsdu/article/details/8153813。 一些具体数据结构和具体路径隐去。   BMW木马样本分析 摘要 2011年底和某Hunter的谈话涉及到当时新检

zirconsdu的专栏 3911

复现报告:《多回路人机控制系统仿真及II型PIO分析》方法复现与代码实现

本文复现了谭文倩硕士论文《多回路人机控制系统仿真及II型PIO分析》中的关键方法,重点实现了频域驾驶员模型辨识和参数灵敏度分析。通过数字化提取论文图表数据,构建了结构驾驶员模型传递函数,并验证了参数变化对系统特性的影响。采用MATLAB实现了描述函数计算、模型参数辨识和灵敏度分析算法,为后续神经网络模型辨识和II型PIO研究奠定了基础。由于缺乏原始实验数据,部分结果通过数值模拟获得,但仍有效重现了论文的核心分析方法。~~~~~

huanghm88的专栏 175

ABP项目中关于Swagger显示的一些相关问题

abp中swagger一些配置

chenludaniel的专栏 723

YOLOv11改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6

在卷积神经网络中,激活函数通过在神经网络中引入非线性,使网络能够学习和逼近复杂函数,从而处理复杂的模式识别与分类问题。

Limiiiing的博客 2792

ABP框架 - Swagger UI 集成

文档目录 本节内容: 简介 Asp.net Core 安装 安装Nuget包 配置 测试 Asp.net 5.x 安装 安装Nuget包 配置 测试 简介 来自它的网页:“...使用一个Swagger-enabled Api,你将获取交互文档,客户端SDK的创建和暴露。”。 Asp.net Core 安装 ...

aichun6888的博客 308

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

eShopOnAbp API文档生成:Swagger UI与OpenAPI集成

eShopOnAbp是基于ABP Framework和.NET构建的参考微服务解决方案,它通过Swagger UI与OpenAPI集成,为开发者提供了直观、强大的API文档生成与管理功能。这一集成不仅简化了API的开发与测试流程,还确保了API文档的实时性和准确性,是项目中不可或缺的重要组成部分。 ## 核心实现:Swagger配置助手 在eShopOnAbp项目中,Swagger的集成主要通

gitblog_00253的博客 990

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ABP框架使用 Swagger

在最近的一个项目中用到了 ABP框架 http://aspnetboilerplate.com/ ,第一次接触到 Swagger https://swagger.io/ 以及前后端的完全分离 在ABP官网下载下来的ABP框架结构【基于ASP.NET MVC5.x的】如图: ABP的EntityFramework 是Code First Mode的,所以在配置好相应的实体后,修改数据库连接字符串,...

weixin_30794499的博客 1146

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ABP 用swagger UI测试API报401无权限访问问题

问题描述: 当我们用swagger UI对Web API 进行测试时报401错误 我们点开GET /api/services/app/Role/GetAll,输入参数 点击Try it out!按钮,报401错误 原因和解决方案 查看右上角有个红色感叹号的图标 点击查看原因是访问API需要输入授权token值进行验证,token值是后台根据登录用户动态生成的,如...

weixin_30797199的博客 1406

ABP .net core框架 - Swagger UI 集成

一、安装nuget包:Swashbuckle.AspNetCore 具体操作: 在web层右击管理nuget包,输入筛选、安装 二、修改Startup.cs配置 using System; using Abp.AspNetCore; using Abp.Castle.Logging.Log4Net; using Abp.EntityFrameworkCore; using EntityFram...

qq_31971935的博客 912

ABP理论学习之Swagger UI集成

返回总目录 本篇目录 介绍 安装 安装Nuget包 配置 测试 介绍 从官方网站上可以看到:“启用了Swagger API,就可以获得交互式文档,生成和发现客户端SDK”。 安装 将Swagger集成到基于ABP的应用中是很容易的事情。 安装Nuget包 将Swashbuckle.Core Nuget包安装到WebApi项目(或Web项目)中。 配置 将Swagger的配置代码添加到模块...

weixin_34361881的博客 143

Abp集成Swagger的最佳实践

1.在项目中添加nuget包 Abp.Web.Api.SwaggerTool 2.在项目Abp模块的DependsOn添加AbpWebApiSwaggerToolModule Run It,启动项目,访问/swagger/ui/index 就打开熟悉的swagger-ui界面,项目中webapi和动态Api的接口都出现了。 Abp.Web.Api.SwaggerTool作为sw...

weixin_30721077的博客 287

C# ABP WebApi与Swagger UI的集成

1. 安装swagger nuget包 首先,将Swagger安装到WebApi项目中。我们安装到WebApi类库中,包为 Install-Package Swashbuckle.Core,如下:   2. 配置 WebApiModule 我们打开WebApi类库下面的WebApiModule类,因为我们的项目叫MyThirdABP,所以类叫MyThirdABPWebApiModule

Denghejing的专栏 4865

abp.swagger.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)

若ABP脚本存放于非wwwroot目录(如staticFileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "static")), // 自定义目录RequestPath = "/static" // 请求路径前缀(如通过/static/abp.js访问)});在.NET 8中,ABP框架的静态资源(如abp.js)必须通过显式启用中间件才能正常访问。

m0_57700068的博客 824

为abp的application service 添加Swagger的Restful api 描述, 并动态生成web api

如果不选择多租户, ABP生成的sample并没有把后台逻辑包装成RESTFul api, 而是mvc前端直接dll引用application service。我们需要做2点改动:1.把mvc改成web api host, 然后添加swagger的描述2.把application service动态生成web api。步骤:1.在Web工程的wwwroot中添加swagger 的前端页面资源把...

muzizongheng的专栏 2824
上一篇: ABP官方文档(三十一)【集成OData】
下一篇: ABP官方文档(三十三)【MVC Controllers】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值