技术标签: Java 接口文档 swagger springboot
优缺点:
优点:省去额外的工作量 单独去维护一套接口文档、配置简单(仅使用几个注解即可完成接口文档的编写)、支持在线测试
缺点:额外的工作量(对于程序员来说)
>>step one:新增依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
>>step two:controller 添加注解
@Api(tags = "基础兑换币 相关接口")
@RestController
@RequestMapping(value = "/web-api/v1/base/pair", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class BasePairController {
@Autowired
private BasePairService basePairService;
//分页列表
@ApiOperation(value = "基础兑换币 列表", notes = "根据交易所ID获取 基础兑换币。")
@ApiImplicitParams({
@ApiImplicitParam(name = "market_id", value = "交易所ID | Long", required = true, paramType = "query", defaultValue = "4")
})
@RequestMapping(value = "list", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public CommandResult<List<BasePairVO>> listByMarketId(@RequestParam(value = "market_id", defaultValue = "0") Long marketId) {
if (marketId == 0){
return CommandResult.ofFail("参数:交易所ID 为空");
}
try {
return basePairService.listByMarketId(marketId);
}catch (Exception e){
log.error("【获取 基础兑换币 列表】请求异常", e);
return CommandResult.ofFail("请求异常");
}
}
}
说明:
@Api:使用在 controller上,表明该控制器的作用(用来做什么)
@ApiOperation:使用在具体的方法上,表明该方法的作用(用来做什么)
@ApiImplicitParams:多参数说明
@ApiImplicitParam:单参数说明
>>step three:返回的对象添加注解
@ApiModel(description = "交易所下基础兑换币 列表信息")
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BasePairVO {
@ApiModelProperty(value = "基础兑换币ID", position = 1)
@JsonProperty("base_pair_id")
private Long basePairId;
@ApiModelProperty(value = "交易所ID", position = 2)
@JsonProperty("market_id")
private Long marketId;
@ApiModelProperty(value = "交易所的基础兑换币", position = 3)
@JsonProperty("pair_name")
private String pairName;
public static BasePairVO doToVo(TBasePairDO pairDO){
if (pairDO == null){
return null;
}
return new BasePairVO(pairDO.getAutoId(), pairDO.getMarketId(), pairDO.getPairName().toUpperCase());
}
}
说明:
@ApiModel:用在返回对象上。
@ApiModelProperty:对返回对象的描述。
>>step four: 加配置
@Configuration
public class Swagger2DevConfig {
@Profile({"default", "pro"})
@Bean
public Docket createWebApi() {
return new Docket(DocumentationType.SWAGGER_2)
.enable(false)
.select().build();
}
@Profile("dev")
@Bean
public Docket createWebApiDev() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfoDev())
.select()
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
.paths(PathSelectors.any())
.build();
}
@Profile("test")
@Bean
public Docket createWebApiTest() {
return new Docket(DocumentationType.SWAGGER_2)
.host("test.echo.com/demo")
.protocols(Sets.newHashSet("https"))
.apiInfo(apiInfoDev())
.select()
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfoDev() {
return new ApiInfoBuilder()
.title("市值API")
.description("市值api接口文档\n" +
"\n" +
"测试环境:https://test.echo.com/demo\n" +
"生产环境\thttps://test.echo.com/demo\n")
.contact(new Contact("echo", "", ""))
.version("1.0")
.build();
}
}
>>结束:查看具体效果(https://test.echo.com/demo/swagger-ui.html)
文章浏览阅读2k次。照样画葫芦,用python编写了一段小程序,可以使用ipad的web浏览器远程监控远端iMac主机界面(每秒截屏,非流控),与大家分享。1. 首先介绍一下需要下载的第三方工具:Flask,PyscreenshotFlask用来做web服务器,Pyscreenshot是用来截屏的。用pip install 分别安装即可2. 介绍程序文件架构如下,需要simplesvr_mac 监控截屏
文章浏览阅读4.7k次,点赞3次,收藏7次。安装完centos7后进入时一直不停出现pcieport 0000:00:1c.5字样,这个的具体原因尚不完全清楚,解决方法查到的都是一种,就是在/etc/default/grub中的GRUB_CMDLINE_LINUX的内容最后添加pci=nomsi或者pci=noaer或者pcie_aspm=off,这样的确可以,但是更新的步骤需要grub2-mkconfig -o /boot/efi/EFI..._dpc:error containment capabilities
文章浏览阅读735次。原文:http://colah.github.io/posts/2015-08-Understanding-LSTMs/Recurrent Neural NetworksHumans don’t start their thinking from scratch every second. As you read this essay, yo_humans don鈥檛 start their thinking from scratch every second.
文章浏览阅读1.4k次。<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistributed with this work for additional informationregarding copyright ownersh._apache-maven-3.9.2\conf\settings.xml
文章浏览阅读6.4k次。当解决复杂的逆向问题时,我们常使用radare2或IDA等成熟工具进行反汇编和调试。但有时也需要深入挖掘并了解它们是如何运作的。编写一些反汇编脚本对于自动化某些流程非常有用,并且可以形成自己的逆向工具链。至少,这是我现在正在尝试的事情。配置环境如标题所说的那样,你需要先安装Python 3。如果你无法确定是否安装了Python 3,可以运行如下命令:其中capstone是..._逆向工程 python
文章浏览阅读2.6k次。//先排序然后查找void FindNumsAppearOnce1(vector<int> data, int* num1, int *num2) { if (data.size() < 2) return; sort(data.begin(), data.end()); vector<int> res; for (int i = 0; i <..._一个数组中找出出现一次的2个数字
文章浏览阅读333次。本文是 Piasy 原创,发表于 https://blog.piasy.com,请阅读原文支持原创 https://blog.piasy.com/2017/06/17/out-of-the-box-webrtc-dev-env/在刚刚落幕的 WWDC17 上,苹果为我们带来了一个不小的惊喜 —— 其浏览器内核WebKit将正式支持 WebRTC,而未来基于 WebKit 内核的苹果浏览器,比如m..._xujianzhu webrtc开箱即用
文章浏览阅读3.3w次,点赞5次,收藏21次。一直用VGG训练,几天前想看下ResNet的效果如何,因为SSD源码中有python实现的ResNet网络结构实现代码,包含ResNet101和ResNet152,直接拿ResNet101来训练,GTX1060配置,batchsize竟然只降到2才跑的起来,果然一直收敛不了。看了下model_libs.py里面的实现代码:def ResNet101Body(net, from_layer, u_resnet50 使用什么代替
文章浏览阅读1.1w次,点赞12次,收藏131次。目录:1、在线逻辑分析仪简介2、HDL 实例化调试探针流程(实验-闪烁灯)3、Hardware Manager中观察调试信号4、网表插入调试探针流程(实验-闪烁灯)1、在线逻辑分析仪简介在线逻辑分析仪借用了传统逻辑分析仪的理念以及大部分的功能,并利用 FPGA 中的逻辑资源,将这些功能植入到 FPGA 的设计当中。一般地,在线逻辑分析仪的应用原理框图如下图所示: 待测设计(Design Under Test,DUT)就是用户逻辑,它和片内的在线逻辑分析仪都位于 FPGA中。在线逻辑分_vivado ila 下一触发沿
文章浏览阅读3.5k次。今天发现一个问题,问题大概是这样的,查询interface的信息,在本地使用本地的数据库访问没有问题,但是发布到服务器上以后访问速度就特别的忙,需要5分钟左右才能返回数据,这肯定是无法让人接受的,刚开始以为是服务器性能的问题,为了验证就把服务器上的数据库备份到本地,发现本地的速度也马上慢了下来,到底是什么问题的。看了一下查询interface的sql语句不禁吓了一跳: _db2数据库索引的使用
文章浏览阅读3.1k次。一 , 当前mysql的最新版本是5.5.25a。到http://dev.mysql.com/downloads/mysql/下载mysql安装文件 。我们这里下载mysql-5.5.25a-win32.msi就可以了,下载完,直接点击安装。mysql有好几个版本,稍微了解下各个版本之间的区别: MySQL Community Server :社区版本 不提供官方技术支持,是免费的_[root@gaojiao ~]# mysql -uroot error 1045 (28000): access denied for user 'r
文章浏览阅读2.3k次。群发消息接口订阅号:每天一条的群发权限服务号:每月(自然月)4条群发权限实例<?php/** * 群发接口 * PS:群发之前调用“预览接口”进行测试 * PS:通过第三方后台调用微信上传图片素材接口,获取图片url,如:{"url":"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/BdxWN2kspVgJOFpRHJojlWmbl0pM..._微信公众号根据标签群发接口支持数组传参吗