springfox

Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据

爷,独闯天下 提交于 2020-03-02 09:06:07
一、简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: <!--more--> 问题一、后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二、返回数据操作难:数据返回不对或者不够怎么办?怎么才能灵活的操作数据? 这是很多公司前后端分离之后带来的困扰,那怎么来解决这些问题? 问题一的一般解决方案:后端团队共同维护一个在线文档,每次改接口再去改对应的文档,但难免会遗漏,花的大力气但却效果平平。 问题二的一般解决方案:自己搭建一个Mock服务器,然后一个接口一个接口手动去录规则,还是一个费力的体力活。 那有没有最优的解决方案,来解决以上两个问题呢?答案是肯定的,那就是将要登场的“Swagger”和“Easy Mock”。 1.1 Swagger介绍 Swagger是全球最流行的接口文档自动生成和测试的框架,几乎支持所有的开发语言。 Swagger官网地址: https://swagger.io/ 1.2 Easy Mock介绍 Easy Mock是一个可视化,并且能快速生成 模拟数据 的持久化服务。 Easy Mock能一键导入Swagger所有接口,省去了手动录制接口的麻烦,而且能够完美的适配Swagger中的代码注释,可谓开发利器。 Easy Mock数据是保存在云端的,而且可以创建团队项目

spring swagger 2.9.2 For input string: ""粗暴解决

守給你的承諾、 提交于 2020-03-02 08:36:12
问题 最近从将springfox-swagger2 2.8.0升级到2.9.0版本,后台报如下错误: java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_181] at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_181] at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_181] at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181] at sun.reflect.NativeMethodAccessorImpl.invoke

Nexus(私有maven仓库)安装文档

痴心易碎 提交于 2020-03-02 08:11:32
依赖jdk,先安装jdk1.7 下载nexus mkdir /usr/local/nexus wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.2-03-bundle.tar.gz tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C /usr/local/nexus/ 编辑nexus文件 vim /usr/local/nexus/nexus-2.11.2-03/bin/nexus # 修改如下参数 NEXUS_HOME="/usr/local/nexus/nexus-2.11.2-03" RUN_AS_USER=root # 把RUN_AS_USER前面的#号删除 修改配置 vim /usr/local/nexus/nexus-2.11.2-03/conf/nexus.properties application-port=8081 application-host=0.0.0.0 nexus-webapp=${bundleBasedir}/nexus nexus-webapp-context-path=/nexus # Nexus section nexus-work=/home/nexus/sonatype-work/nexus runtime=$

Swagger 描述API返回信息

时光怂恿深爱的人放手 提交于 2020-03-02 08:08:57
一、pom中引入jar <swagger2.version>2.8.0</swagger2.version> <!--swagger2,API整理工具,通过域名/swagger-ui.html#/可直接访问 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger2.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger2.version}</version> </dependency> 二、配置swagger信息 @Configuration @EnableSwagger2 public class Swagger2 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() .apis

SpringBoot集成swagger2

守給你的承諾、 提交于 2020-03-01 20:50:50
springboot-swagger2-demo 项目介绍 SpringBoot集成swagger2 使用说明 引入maven依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> 启用swagger2 在Application类上添加@EnableSwagger2注解 如: @EnableSwagger2 @SpringBootApplication public class SpringbootDemoApplication 在Controller上添加注释信息(非必须) 如: @ApiOperation(value = "获取用户详细信息", notes = "根据url的id来获取用户详细信息") @ApiImplicitParam(name = "id", value = "用户ID", required =

基于Spring Boot 2.0 及MongoDB 3.6.2 实现的简单文件共享服务器

痴心易碎 提交于 2020-03-01 06:18:57
近期研究学习Spring Boot 2.0及MongoDB期间,尝试用Reactive模式实现了一个简单的文件共享服务器,可用于家庭及小型组织内部的文件共享,目前已实现如下功能: 1. 管理员及普通账号鉴权; 2. 分组文件管理,分目录管理; 3. 文件批量下载,PDF及图片格式文件预览与下载; 4. 目录管理与账号管理; 5. 各个基础功能的REST API接口; 6. 新增TensorFlow 自动识别图像内容,为图像增加内容标签 开发环境配置如下: JDK最低版本要求 Java SE 1.8, 目前在JDK9.0版本环境还存在一些兼容性问题。 Spring Framework 5.0.3.RELEASE + Spring Boot 2.0.BUILD-SNAPSHOT Spring Security 5.0.1.RELEASE Kotlin 1.2 (目前仅用于建立实体映射Bean) Springfox Swagger 2.8.0 + swagger-bootstrap-ui 1.7.2 (不同的REST API展示界面) MongoDB 3.6.2 (配置数据及文件存储) 后端文件全部存储在MongoDB库内, 本示例程序启动操作简单,具体操作步骤如下: 1. 从码云下载代码库,在本地通过gradle命令编译生成jar包; 2. 下载MongoDB,启动mongodb实例;

yapi 调研

♀尐吖头ヾ 提交于 2020-02-28 04:22:49
20200207 项目调研可以写一下俩工程的实现原理,最后采用哪个工程进行改造,采用的实现方案是什么 20200206 https://segmentfault.com/a/1190000021008147 早前..... 大家好,关于接口文档工具,结合前天群里的讨论,简单做了些调研,我觉得可以参考目前咱们工作实际,从短期和长期两个方向考虑,短期来讲解决当前使用中的痛点,长期来讲看看能否封装一个产品话的工具。大家有什么问题可以提出来,比如下面的是我结合群聊做的一个demo springfox-swagger 的代码侵入问题 yapi接口录入麻烦问题 可以考虑结合 https://github.com/zxcvbnmzsedr/apidoc 二次开发 0.1.0版本 这两天我写一个Demo,做一个maven插件,结合上述代码库,将javadoc 通过yapi的 openapi的方式自动导入ypai pom配置 导入效果: 只需要相关注释,不用写注解侵入性小 对于没有注释的可兼容优化类型和方法名代替 是否需要私有化部署yapi 建议使用公司现有工具,不重复造轮子 如果现有工具不能满足需求,或者咱们提出的问题沟通支持缓慢,再考虑私有化部署 0.2.0版本 Spring spi机制,伴随Spring容器启动,自动上传api,业务侧不感知 org.springframework.boot

在springboot中使用swagger2

别来无恙 提交于 2020-02-27 09:08:18
1、在springboot中使用swagger的话,首先在pom文件中引入依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>2、创建配置类 @Configuration @EnableSwagger2 public class Swagger2Config{ @Bean public Docket swaggerSpringMvcPlugin(){ return new Docket

上手 Swagger3.0.0-SNAPSHOT,增加支持 WebFlux

蹲街弑〆低调 提交于 2020-02-27 08:26:51
上手 Swagger3.0.0-SNAPSHOT,增加支持 WebFlux 截至今天(2020年2月12日) swagger 3.X 尚未正式发布,项目需要,先用快照版 相关源码 WebMvc,可参考 mall-user模块 WebFlux,可参考 mall-gateway模块 一、添加 Swagger 3.X 仓库地址 修改本机 maven 配置 Windows C:\Users\User\.m2\setting.xml Mac maven_home\conf\setting.xml <mirror> <id>oss-snapshot</id> <name>OSS Snapshot</name> <url>http://oss.jfrog.org/oss-snapshot-local</url> <mirrorOf>*</mirrorOf> </mirror> pom 里添加仓库配置 <repository> <id>oss-snapshot</id> <name>OSS Snapshot</name> <url>http://oss.jfrog.org/oss-snapshot-local</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> 二、WebFlux 相关依赖

springfox-swagger2设置全局token避免每次输入

痞子三分冷 提交于 2020-02-27 01:16:44
Swagger API头信息传 Authorization 配置 @Bean public Docket createRestApi() { //header token ParameterBuilder tokenPar = new ParameterBuilder(); List<Parameter> pars = new ArrayList<>(); tokenPar.name("Authorization").description("token").modelRef(new ModelRef("string")) .parameterType("header").required(false).build(); pars.add(tokenPar.build()); return new Docket(DocumentationType.SWAGGER_2) .globalOperationParameters(pars) .genericModelSubstitutes(DeferredResult.class) .useDefaultResponseMessages(false) .forCodeGeneration(true) .apiInfo(apiInfo()) .pathMapping("/") .select() .apis