Swagger UI

Oh my God, Swagger API文档竟然可以这样写?

心不动则不痛 提交于 2020-12-17 14:27:11
最好的总会在不经意间出现。 “ 作为后端程序员,免不了与前端同事对接API, 一个书写良好的API设计文档可有效提高与前端对接的效率。 为避免联调时来回撕逼,今天我们聊一聊正确编写Swaager API文档的姿势。 基础Swagger用法 在 ConfigureServices 配置Swagger文档,在 Configure 启用中间件 // Install-Package Swashbuckle.AspNetCore 略 services.AddSwaggerGen( options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "EAP API", Version = "v1" }); } ); --- app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "EAP API"); }); 应用会在 /Swagger 页面加载最基础的API文档。 以一个最简单的Post请求为例, 细数这最基础Swagger文档的弊病 : [HttpPost] public async Task<bool> AddHotmapAsync([FromBody]

Asp.Net Core 3.0 WebApi 使用Swagger

爱⌒轻易说出口 提交于 2020-12-14 01:40:53
1、安装指定版本: Swashbuckle.AspNetCore 5.0.0-rc4(目前稳定版本4.0.1在AspNetCore3.0中会报错误) 2、后台C#代码要严格格式必须加[HttpPost]或者[HttpGet] 3、Startup类中配置如下代码 public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddRazorPages(); #region Swagger配置 services.AddSwaggerGen(c => { c.SwaggerDoc( " v1 " , new Microsoft.OpenApi.Models.OpenApiInfo { Title = " My API " , Version = " v1 " }); c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First()); }); #endregion services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Latest); } public void Configure

.Net Core之Swagger

会有一股神秘感。 提交于 2020-12-13 08:02:39
1.项目生成xml 2.添加链接文件,并将属性设值为始终复制 3.添加swagger引用:Swashbuckle.AspNetCore 4.startup.cs配置swargger的xml来源: ConfigureServices方法添加: services.AddMvc(); services.AddOptions(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "DVM AdsPlatformProxy Service WebApi", Version = "v1.0.0.3" }); var basePath = PlatformServices.Default.Application.ApplicationBasePath; var docPath = Path.Combine(basePath, "Docs"); var docs = XMLUtil.CreateXPathDocumentsFromDirectory(docPath); docs.ForEach(xp => c.IncludeXmlComments(() => { return xp; })); });//swagger文件路径配置 services.RegisterServiceR<ILogBase,

SpringBoot整合Swagger

纵饮孤独 提交于 2020-12-04 17:51:01
@Author:SimpleWu 什么是Swagger? Swagger是什么:THE WORLD’S MOST POPULAR API TOOLING 根据官网的介绍: Swagger Inspector:测试API和生成OpenAPI的开发工具。Swagger Inspector的建立是为了解决开发者的三个主要目标。 执行简单的API测试 生成OpenAPI文档 探索新的API功能 我的理解Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案。根据我的使用,当然我只是最简单的使用,我感觉Swagger有以下几个优点: Swagger可以整合到代码中,在开发时通过注解,编写注释,自动生成API文档。 将前端后台分开,不会有过分的依赖。 界面清晰,无论是editor的实时展示还是ui的展示都十分人性化,如果自己仅仅用markdown来编写,又要纠结该如何展现,十分痛苦。 构建项目 step1.导入依赖 <!--swagger服务api构建个性包--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version

BUG赏金 | 无效的API授权导致的越权

不打扰是莪最后的温柔 提交于 2020-11-30 20:56:42
图片来源于网络 大家好,我想分享一下我是如何在某邀请项目中发现一个简单的API授权错误的,该错误影响了数千个子域,并允许我在无需用户干预的情况下使用大量不受保护的功能,从帐户删除到接管甚至于泄漏部分信息(姓名,电子邮件和雇主)。 要点: 服务器没有检查(发起请求的)授权token是属于普通用户还是超级用户。 这是一个邀请项目,因此将删除一些敏感信息,我将其称为 target.com 。 我在使用dirsearch对网站进行扫描的同时,通过浏览 academy.target.com 对网站的功能做了大致了解,我注意到一个有趣的端点,如: academy.target.com/api/docs 此类端点就像是个金矿,因为它列出了API文档并指定了请求和响应的结构。 在浏览到端点时,我发现页面与Swagger UI非常相似(尽管此站点未使用swagger)。 它还有一个名为“ Authenticate (验证)”的按钮,单击该按钮可导航到登录页面,但是如果我尝试登录,则会提示“ Account not authorized (账户未授权)”。 有一些有趣的端点,例如: / poweruser / add / poweruser / delete / user / delete / user / create / user / user_logged_in / user / profile

用 Swagger 测试接口,怎么在请求头中携带 Token?

雨燕双飞 提交于 2020-11-25 07:57:40
松哥周末抽空给 Spring Security 系列也录制了一套视频,目录如下: 感兴趣的小伙伴戳这里--> Spring Boot+Vue+微人事视频教程 今天的话题来自一个小伙伴在微信上的提问: 看到这个问题,松哥忽然想到我自己之前写过 Spring Boot+Swagger 的用法: SpringBoot 整合 Swagger2 也写过 OAuth2 + Jwt 的用法: 想让 OAuth2 和 JWT 在一起愉快玩耍?请看松哥的表演 但是还没有将这两个结合在一起写过,所以小伙伴们对此有了疑问,想一想这还是一个非常常见的问题,因为现在使用令牌登录的场景越来越多,在这种情况下,如果使用 Swagger 来测试接口,要怎么在请求头中携带 Token 呢?今天松哥就来和大家聊一聊。 1.项目规划 如果小伙伴们没有看过松哥之前发的 OAuth2 系列文章,建议一定先看下(公众号江南一点雨后台回复 OAuth2 获取),再来看本文内容,否则接下来的内容可能会犯迷糊。 这里松哥搭建一个 OAuth2+JWT 的环境来做演示。一共搭建两个服务: 服务名 端口 备注 auth-server 8080 授权服务器 user-server 8081 资源服务器 我稍微解释一下: auth-server 就是我的资源服务器,用来颁发 JWT 令牌。 user-server 则是资源服务器,访问

Swashbuckle.AspNetCore3.0的二次封装与使用

风格不统一 提交于 2020-11-24 06:25:36
关于 Swashbuckle.AspNetCore3.0 一个使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探索和测试操作的 UI。 项目主页: https://github.com/domaindrivendev/Swashbuckle.AspNetCore 项目官方示例: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/tree/master/test/WebSites 之前写过一篇 Swashbuckle.AspNetCore-v1.10 的使用 ,现在 Swashbuckle.AspNetCore 已经升级到 3.0 了,正好开新坑(博客重构)重新封装了下,将所有相关的一些东西抽取到单独的类库中,尽可能的避免和项目耦合,使其能够在其他项目也能够快速使用。 运行示例 封装代码 待博客重构完成再将完整代码开源,参考下面步骤可自行封装 1. 新建类库并添加引用 我引用的版本如下 <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.1" /> <PackageReference Include="Microsoft

Swagger2介绍

限于喜欢 提交于 2020-11-18 15:35:16
一 Swagger2介绍 官网: https://swagger.io/ 前后端分离开发模式中,api文档是最好的沟通方式。 前端工程师编写接口文档(使用swagger2编辑器或其他接口生成工具) 交给后端工程师 根据swagger文档编写后端接口 最终根据生成的swagger文件进行接口联调 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 及时性 (接口变更后,能够及时准确地通知相关前后端开发人员) 规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息) 一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧) 可测性 (直接在接口文档上进行测试,以方便理解业务) 二 配置 Swagger2 1 依赖 <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> </dependency> 2

SpringSecurity+JWT如何做权限认证并且获取用户信息

那年仲夏 提交于 2020-11-12 18:46:13
SpringSecurity核心配置 /** * 对SpringSecurity的配置的扩展,支持自定义白名单资源路径和查询用户逻辑 */ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired(required = false) private DynamicSecurityService dynamicSecurityService; @Override protected void configure(HttpSecurity httpSecurity) throws Exception { ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = httpSecurity .authorizeRequests(); //不需要保护的资源路径允许访问 for (String url : ignoreUrlsConfig().getUrls()) { registry.antMatchers(url).permitAll(); } //允许跨域请求的OPTIONS请求 registry.antMatchers(HttpMethod.OPTIONS)

集成 Swagger springboot 接口API插件

徘徊边缘 提交于 2020-10-27 17:39:07
Swagger介绍 1.什么是Swagger 作为后端程序开发,我们多多少少写过几个后台接口项目,不管是编写手机端接口,还是目前比较火热的前后端分离项目,前端与后端都是由不同的工程师进行开发,那么这之间的沟通交流通过接口文档进行连接。但往往伴随很多问题,后端程序员认为编写接口文档及维护太花费时间精力,前端的认为接口文档变动更新不及时,导致程序之间相互调用出行问题。那么能简化接口文档的编写直接自动生成吗?当然能!如是乎Swagger这种接口文档在线自动生成工具便孕育而生。 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。 2.Swagger优点 代码变,文档变。只需要少量的注解,Swagger 就可以根据代码自动生成 API 文档,很好的保证了文档的时效性。 跨语言性,支持 40 多种语言。 Swagger UI 呈现出来的是一份可交互式的 API 文档,我们可以直接在文档页面尝试 API 的调用,省去了准备复杂的调用参数的过程。 还可以将文档规范导入相关的工具(例如 Postman、SoapUI),