--Swagger2--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId annotations.EnableSwagger2; /** * API接口文档配置 * * @Author MiChong * @Email: 1564666023@qq.com * @ Create 2018-03-29 16:32 * @Version: V1.0 */ @Configuration @EnableSwagger2 public class Swagger2 { 再通过@EnableSwagger2注解来启用Swagger2。 select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现,本例采用指定扫描的包路径来定义,Swagger会扫描该包下所有Controller定义的API
Swagger2综述 Swagger是一款Restful 接口的文档在线自动生成、功能测试框架。 Swagger-UI 是一款Restful接口的文档在线自动生成+功能测试功能软件。 为什么API接口文档用Swagger-UI? 现在多数的项目开发中,网站和移动端都需要进行数据交互和对接,这少不了使用Restful编写API接口这种场景。 目前官方提供的Swagger-UI 的使用方式主要有2种: 与不同的服务端代码集成,在服务端代码中嵌入SwaggerUI文档生成代码,部署时自动生成。 对于测试人员,有了这份API文档也是一目了然,不需要和后端多少沟通成本,按着API说明进行接口测试脚本开发即可。
腾讯云v2之前的的API是支持做项目管理的,自从升级到到v3以后就没有这个能力了,在API Explorer里面查不到任何相关的接口,其他接口中涉及到项目ID的地方还会指向几个老版本的超链接,但是也都是空页面自动跳转掉了 图片实在想要通过程序自动化的管理项目,只能退回到v2的老接口。 虽然详细的接口文档已经不好找了,但是一番努力还是在github上找到了已经废弃的几个老文档:v2接口调用的公共参数v2接口签名的生成算法项目相关的v2接口有了这几样东西,就很容易包装出来基础的项目管理模块了 account(param){return call_v2("account",param)}function call_v2_tag(param){return call_v2("tag",param tag(param)}一个账号最多只能创建100个项目,而项目一旦创建就删除不了,不管是API还是界面上都删除不了,所以创建这个接口就不要反复测试了。
春节临近,祝大家新年快乐,猪事顺利,2019就是盘它~ 在vue开发中,会涉及到很多接口的处理,当项目足够大时,就需要定义规范统一的接口,如何定义呢? 方法可能不只一种,本文使用axios+async/await进行接口的统一管理。 本文使用vue-cli生成的项目举例。 举例 拿segmentfault的官网简单举个例子,先看一下官网: ? (我的订阅、热门资讯) 问答模块 专栏模块 讲堂模块 圈子模块 发现模块 个人信息模块 用户登录注册模块 ...还有其他很多 一般来说,网站的首页都是复杂的,会用到很多其他页面也会用到的api,所以接口统一管理可以做到 /http.js' // 定义接口 // 在这里定义了一个登陆的接口,把登陆的接口暴露出去给组件使用 export const LOGIN = params => req('post', '/ pass: '' } } }, methods: { // 2.
一、Swagger2简介 1、Swagger2优点 整合到Spring Boot中,构建强大RESTful API文档。 省去接口文档管理工作,修改代码,自动更新,Swagger2也提供了强大的页面测试功能来调试RESTful API。 2、Swagger2常用注解 Api:修饰整个类,描述Controller的作用 ApiOperation:描述一个类的一个方法,或者说一个接口 ApiParam:单个参数描述 ApiModel:用对象来接收参数 一个请求参数 ApiImplicitParams:多个请求参数 二、与SpringBoot2.0 整合 1、核心依赖 spring-boot:2.1.3.RELEASE swagger:2.6.1 2、 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2)
= '裤子女夏' - 裤子男夏季 + 裤子女夏 ---------------------------------------------------------------------- Ran 2 Login("test_longin")) runner = unittest.TextTestRunner() runner.run(suite) interface_post_test2. /usr/bin/env python # -*- coding: utf-8 -*- # @File Name: interface_post_test2.py # @Time : 2019/8 ===================================================== FAIL: test_login (testcase.interface_post_test2. = '裤子女夏' - 裤子男夏季 + 裤子女夏 ---------------------------------------------------------------------- Ran 2
这里需要使用node的一个守护工具包pm2,其安装与使用方法: # 安装pm2 npm install pm2 -g cd {项目目录} # pm2管理yapi服务 pm2 start "vendors /server/app.js" --name yapi pm2 info yapi pm2 stop yapi pm2 restart yapi ? 在项目下创建接口: ? 还有创建分组等其他使用的功能,自己把环境支棱起来,随便玩。 ---- 首发公众号 「行百里er」 ,欢迎老铁们关注阅读指正。
应用场景 App、Web、接口自动化测试 测试步骤的数据驱动 测试数据的数据驱动配置的数据驱动 实例: env.yml - test:127.0.0.1 testdemo.py class TestDemo 测试报告定制 Allure测试框架 allure是一个轻量级,灵活的,支持多语言的测试报告工具;多平台的,奢华的report框架; 可以为dev/ qa提供详尽的的测试报告、测试步骤、log; 也可以为管理理层提供 等可以集成到Jenkins Allure报告预览 Allure安装 windows / mac通用安装方法 https://github.com/allure-framework/allure2/ brew安装: brew install allure 官网:http:// allure.qatools.ru/ 文档: https:// docs.qameta.io/allure/# 使用Allure2生成漂亮的报告
第二部分给大家安利一个“接口管理平台”,以帮助大家解决接口文档维护、接口测试数据Mock、接口自动化测试等问题。希望对小伙伴们有用。 言归正传,进入今天的话题。 ? 二、接口管理平台 痛点分析: 目前接口测试和文档维护主要有以下几个痛点: 1、文档维护非常耗时,开发&测试同学投入不少精力; 2、接口测试数据Mock不方便; 3、接口自动化测试不好做,成本高。 它可以称为接口测试和管理“一站式”平台。 接口测试和管理现状: ? YAPI的解决方案: ? YAPI的几个功能特色介绍: 1、接口文档功能:后端开发&前端开发&测试共同维护同一份接口文档,减少文档维护的成本,保证文档的统一性; 2、拥有强大的Mock功能: ? 3、接口自动化测试功能: ? 测试阶段可以直接在接口管理平台上进行测试,上线后可以配置在服务端对接口进行自动化测试,实现监控功能。
背景 swagger确实很不错,可以自动生成接口文档,省去另外写文档的工作量,但是毕竟自动生成,肯定有不适合我们自己需求的地方。比如所有的接口文档没有分类,放在一起,前端很难找到所需的接口。 我这里通过swagger提供的group功能进行增强,对接口文档进行分类、和版本管理。原生提供的group功能需要硬编码,生成Docket,使用起来极其不友好。 自动生成group,实现对接口版本管理。 这里我们公司习惯使用git分支进行管理,所有接口文档也跟着git分支做为版本管理。 定义注解 定义注解,用于在标注接口所属哪个版本。内部枚举,用来定义分支。 SecurityReference("Authorization", authorizationScopes)); return arrayList; } } 使用 只需要对所要进行管理的接口上
MacOS 安装可视化接口管理平台YAPI /** 暂时还没写 */ CentOS 安装可视化接口管理平台YAPI 注意:所有软件请参考官方文档下载并使用,尤其是版本的差异 一、安装前检查所需环境 1、 查看系统信息 $ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 2、查看Linux内核信息 $ uname -a Linux target_arch: x86_64 6、查看当前Git版本,没有则需要安装 $ git -version 二、项目地址以及环境准备 1、Github地址:https://github.com/YMFE/yapi 2、 官方提供的管理账号:admin@admin.com 密码: ymfe.org YAPI使用操作指南 https://hellosean1025.github.io/yapi/documents/index.html 2、使用命令行安装 /** 暂时还没写 */ 四、YAPI随CentOS系统启动并运行 CentOS 7 操作系统 systemctl 脚本存放在目录 /usr/lib/systemd/,有系统(
什么是函数式接口 只包含一个抽象方法的接口,称为函数式接口。 可以通过 Lambda 表达式来创建该接口的对象。 (若 Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明)。 可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口。 > mf){ list.forEach(p->p.setAge(mf.getValue(p.getAge(),10))); } fun(fastPersonList,(i1,i2) ->i1+i2); Java内置四大核心函数式接口 image.png Post Views: 343
public void method2(); abstract void method3(); void method4(); // 注意:在接口中上述写法都是抽象方法 创建接口时, 接口的命名一般以大写字母开头. 2. 阿里编码规范中约定, 接口中的方法和属性一般不要加任何修饰符号(除default,static), 保持代码的简洁性. args) { USB usb = new USB(); } } // Error:(10, 19) java: day20210915.USB是抽象的; 无法实例化 ❤️❤️2. / Error:(4, 18) java: 此处不允许使用修饰符private private void openDevice(); void closeDevice(); } 2. 接口间的继承 ❤️❤️在接口中,继承是指一个接口可以继承一个接口或多个接口(注意可以继承多个接口)。
Runner.java 代码: /** * 接口 * 接口 [interface]是抽象方法和常量值的定义的集合 * * 从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义 ,而没有变量和方法的实现 * * 接口中所有的方法都是抽象方法,包含的属性值都是常量值 * * 接口中定义的属性必须是: public static final * * 接口中定义的方法必须是 ************************* 测试类: Test.java 代码; /** * * 接口特性总结: * 通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系 ; * * 接口可以被多重实现; * * 接口可以继承其他的接口,并添加新的属性和抽象方法,接口可以多重继承; * * 如:public interface A{ start()方法 这是重写Runner接口中的run()方法 这是重写Runner接口中的stop()方法 **************多态************** 这是重写Swimmer接口中的
常见如mybatis的Mapper接口注入就是实现的此接口。 2、简单案例 下面是一个示例,展示了如何实现动态的给spring容器添加一个Bean: public class User { String name; String password; propertyValues.addPropertyValue(propertyValue1); propertyValues.addPropertyValue(propertyValue2) 接口。 ,然后优先调用实现了PriorityOrdered接口的组件,再调用实现了Ordered接口的组件。
RabbitMQ里有一个vhost的概念,和其它软件中的vhost不太一样,在Apache中是表示一个虚拟的站点,而在这里是表示一个命名空间和权限集合
bin/ npm config set registry https://registry.npm.taobao.org npm config get registry npm install -g pm2 npm install -g yapi-cli --registry https://registry.npm.taobao.org ln -s /usr/local/nodejs/bin/pm2 /usr 看到页面配置成功后可以 ctrl + c 停止本进程 启动服务 # 如果 mongod 已运行,本条命令可以跳过 mongod --config /usr/local/mongodb/mongodb.conf # pm2 启动 cd /usr/local/mongodb/my-yapi pm2 start "vendors/server/app.js" --name yapi # 访问 http://127.0.0.1
在这前后端分离大行其道的今天,如何优雅的管理接口,对应提高工作效率非常重要。而接口又是由后端提供的,这个任务自然而然的又落在后台开发人员的身上。 在这里提供三种常见的接口管理方案,这三种方案没有属谁最优,属谁最差。根据项目的情况而定。 0x01:基于文档式的接口管理 基于文档式的接口管理时最传统,也是最常见的接口管理方式。 因为一直做些不大不小的项目型项目,所以几乎使用的都是该接口管理方案。 演示地址: https://www.showdoc.com.cn/demo RAP / rap2-delos + rap2-dolores(阿里出品) 阿里妈妈前端团队出品的开源接口管理工具 RAP2 分成了两个包: rap2-delos:后端数据 API 服务器 rap2-dolores:前端静态资源 ? 喜欢,在看
new) .collect(Collectors.toList()); } return Collections.emptyList(); } 编写查询接口 更改 ChannelController: /** *
* 渠道管理表 前端控制器 *
* * @author BNTang * @since 2023-08-22 * return getDataTable(iChannelService.selectChannelList()); } } 更改 IChannelService: /** ** 渠道管理表 26 09:32:57 */ List<Channel> selectChannelList(); } 更改 ChannelServiceImpl: /** *
* 渠道管理表 Mapper 接口 *
* * @author BNTang * @since 2023-08-22 */ public interface ChannelMapper extendsActivityController @PreAuthorize("hasPermission('tienchin:activity:create')") @Log(title = "活动管理", businessType 1 : 0; } ValidationMessages.properties # 活动管理 activity.name.notBlank=活动名称不能为空 activity.name.size=活动名称最大长度为 @Size(max = 255, message = "{activity.info.size}") private String activityInfo; /** * 活动类型,1.折扣券、2.