博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABP官方文档翻译 5.4 SwaggerUI集成
阅读量:6288 次
发布时间:2019-06-22

本文共 3436 字,大约阅读时间需要 11 分钟。

SwaggerUI集成

 

介绍

  在它的网站上:“...使用Swagger可用的API,你将获得可交互的文档、客户端SDK生成和可发现的能力”。

ASP.NET Core

安装Nuget包

   在你的网站上安装Swashbuckle 6.x nuget包。

配置

  在Startup.cs的ConfigureServices方法中添加Swagger的配置代码:

public IServiceProvider ConfigureServices(IServiceCollection services){    //your other code...        services.AddSwaggerGen();        //your other code...}

  然后在Startup.cs的Configure方法中添加下面的代码来使用Swagger:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){    //your other code...    app.UseSwagger();    app.UseSwaggerUi(); //URL: /swagger/ui}

  最后,为了当从swagger ui测试动态web api services时能发送CSRF Token,你需要在web工程中添加swagger ui的index.html文件。它必须放在“wwwroot\swagger\ui”文件夹下。然后需要在index.html中修改swagger ui定义的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);}

  参见了解更多配置选项。

测试

  就这样。你可以通过"/swagger/ui/index"浏览swagger ui。

ASP.NET 5.x

安装Nuget包

  在WebApi工程(或Web工程中)安装Swashbuckle.Core nuget包。

配置

  在模块的Initialize方法中添加Swagger的配置代码。示例:

public class SwaggerIntegrationDemoWebApiModule : AbpModule{    public override void Initialize()    {        //your other code...        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”的javascript文件。这个脚本文件用来当在Swagger ui中测试api服务时给请求添加CSRF token。同样需要作为内嵌资源添加这个文件到WebApi工程中,当在JavaScript方法中注入它时需要使用它的逻辑名称。

  重要:上面的代码可能和你的工程稍微不同(命名空间不会是AbpCompanyName.AbpProjectName...并且AbpProjectNameWebApiModule将是YourProjectNameWebApiModule).

  Swagger-Custom.js文件的内容在这里:

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);

  参见了解更多配置选项。

测试

  就这样。让我们浏览/swagger/ui/index吧。

  

  你可以看到所有的Web API Controllers(还有动态web api controllers)并测试他们。

 

 

转载于:https://www.cnblogs.com/xajh/p/7045725.html

你可能感兴趣的文章
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>
254页PPT!这是一份写给NLP研究者的编程指南
查看>>
《Data Warehouse in Action》
查看>>
String 源码浅析(一)
查看>>
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
查看>>
Fescar 发布 0.2.3 版本,支持 Redis 和 Apollo
查看>>
Google MapReduce到底解决什么问题?
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>
Excel 2013 全新的图表体验
查看>>
openstack 制作大于2TB根分区自动扩容的CENTOS镜像
查看>>
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
python分析postfix邮件日志的状态
查看>>
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>