春节临近,祝大家新年快乐,猪事顺利,2019就是盘它~ 在vue开发中,会涉及到很多接口的处理,当项目足够大时,就需要定义规范统一的接口,如何定义呢? 方法可能不只一种,本文使用axios+async/await进行接口的统一管理。 本文使用vue-cli生成的项目举例。 举例 拿segmentfault的官网简单举个例子,先看一下官网: ? (我的订阅、热门资讯) 问答模块 专栏模块 讲堂模块 圈子模块 发现模块 个人信息模块 用户登录注册模块 ...还有其他很多 一般来说,网站的首页都是复杂的,会用到很多其他页面也会用到的api,所以接口统一管理可以做到 /http.js' // 定义接口 // 在这里定义了一个登陆的接口,把登陆的接口暴露出去给组件使用 export const LOGIN = params => req('post', '/ 可以做到接口一次定义,到处使用。
这里需要使用node的一个守护工具包pm2,其安装与使用方法: # 安装pm2 npm install pm2 -g cd {项目目录} # pm2管理yapi服务 pm2 start "vendors 在项目下创建接口: ? 还有创建分组等其他使用的功能,自己把环境支棱起来,随便玩。 ---- 首发公众号 「行百里er」 ,欢迎老铁们关注阅读指正。
第二部分给大家安利一个“接口管理平台”,以帮助大家解决接口文档维护、接口测试数据Mock、接口自动化测试等问题。希望对小伙伴们有用。 言归正传,进入今天的话题。 ? 二、接口管理平台 痛点分析: 目前接口测试和文档维护主要有以下几个痛点: 1、文档维护非常耗时,开发&测试同学投入不少精力; 2、接口测试数据Mock不方便; 3、接口自动化测试不好做,成本高。 它可以称为接口测试和管理“一站式”平台。 接口测试和管理现状: ? YAPI的解决方案: ? 3、接口自动化测试功能: ? 测试阶段可以直接在接口管理平台上进行测试,上线后可以配置在服务端对接口进行自动化测试,实现监控功能。 小结: 以上是对YAPI接口管理平台的介绍,其在内网部署安装流程也非常简单,官方有非常详细的教程文档(https://hellosean1025.github.io/yapi/documents/index.html
背景 swagger确实很不错,可以自动生成接口文档,省去另外写文档的工作量,但是毕竟自动生成,肯定有不适合我们自己需求的地方。比如所有的接口文档没有分类,放在一起,前端很难找到所需的接口。 我这里通过swagger提供的group功能进行增强,对接口文档进行分类、和版本管理。原生提供的group功能需要硬编码,生成Docket,使用起来极其不友好。 } 解决方案 本篇记录的是,swagger自动生成group,实现对接口版本管理。 这里我们公司习惯使用git分支进行管理,所有接口文档也跟着git分支做为版本管理。 定义注解 定义注解,用于在标注接口所属哪个版本。内部枚举,用来定义分支。 SecurityReference("Authorization", authorizationScopes)); return arrayList; } } 使用 只需要对所要进行管理的接口上
MacOS 安装可视化接口管理平台YAPI /** 暂时还没写 */ CentOS 安装可视化接口管理平台YAPI 注意:所有软件请参考官方文档下载并使用,尤其是版本的差异 一、安装前检查所需环境 1、 初始化一些信息,此时可以查看控制台的输出(图片来自网络) 根据提示信息,访问项目,默认的项目访问地址:http://[YAPI部署IP]:3000/ 注意: 1、需要注册才可以使用 2、官方提供的管理账号
YApi官网:https://hellosean1025.github.io/yapi/
在这前后端分离大行其道的今天,如何优雅的管理接口,对应提高工作效率非常重要。而接口又是由后端提供的,这个任务自然而然的又落在后台开发人员的身上。 在这里提供三种常见的接口管理方案,这三种方案没有属谁最优,属谁最差。根据项目的情况而定。 0x01:基于文档式的接口管理 基于文档式的接口管理时最传统,也是最常见的接口管理方式。 因为一直做些不大不小的项目型项目,所以几乎使用的都是该接口管理方案。 除此之外,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。 RAP 第二代,RAP 通过 GUI 工具帮助 WEB 工程师更高效的管理接口文档,同时通过分析接口结构自动生成 Mock 数据、校验真实接口的正确性,使接口文档成为开发流程中的强依赖。
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=活动名称最大长度为
ActivityController.java @PreAuthorize("hasPermission('tienchin:activity:create')") @Log(title = "活动管理 "添加失败"); } /** * 修改活动 */ @PreAuthorize("hasPermission('tienchin:activity:edit')") @Log(title = "活动管理
YApi官网:https://hellosean1025.github.io/yapi/
接口管理这下总会了吧? ? 添加 Swagger 注解 配置扫描规则 application.yaml 效果 实现原理 小结 利用 Spring Boot 快速集成 Swagger 实现 Swagger 作为一款优秀的 API 接口文档管理框架 主要目的: 多种扫描方式(包路径、路由前缀) 自定义前缀 接口分组管理 无需额外配置,专注于接口文档自身 使用方式 引入依赖 pub.dsb.framework.boot:dsb-boot-api-starter : 接口文档描述 terms-of-service-url: 服务地址 name: 接口负责人:姓名 url: 接口负责人:个人地址 - group-name: 基础信息管理 # 接口前缀 path-mapping: /api/docs/ # 包路径匹配
使用管理门户SQL接口(一)本章介绍如何在InterSystems IRIS®数据平台管理门户上执行SQL操作。 管理门户界面使用动态SQL,这意味着在运行时准备和执行查询。 它不打算用作在生产环境中执行SQL的接口。管理门户还提供了各种配置SQL的选项。有关使用管理门户的一般信息,请选择左上角的Help按钮。 因此,必须首先指定要通过单击SQL接口页面顶部的 “开关switch” 选项要使用的命名空间。这将显示可用名称空间列表,可以从中进行选择。可以设置管理门户默认命名空间。 以下显示特性是管理门户SQL接口独有的,执行查询结果显示和打开表数据显示:数据类型%Stream.Globalcharacter的流字段将实际数据(最多100个字符)作为字符串显示。 SQL Shell:在终端使用SQL Shell接口执行动态SQL。
categories: Spring Components tags: spring springfox-swagger ---- Springfox Swagger 和Spring的整合已经让我们可以动态的生成接口文档了 ,但是接口文档的生成、管理、导出在网上看了很多博客,着实让我走了很多弯路,都不是很满意。 ---- Swagger 接口管理和文档导出 Swagger 项目接口分组管理、文档生成和批量导出 测试用例根据接口分组 批量循环生成对应的 swagger.json 接口分组管理请前往 《Spring , 名称的格式必须是:组件标识-接口分组标识-接口版本号,例如:xxx-api-v1 String swaggerOutName = System.getProperty("io.swagger.json.output.name 配置插件执行 生成 pdf 和 html 格式的接口文档 由于<phase>compile</phase>配置,接口分组id不同,调整参数执行mvn compile(或在idea中的maven project
使用管理门户SQL接口(二) 过滤模式内容 Management Portal SQL界面的左侧允许查看模式(或匹配筛选器模式的多个模式)的内容 通过单击SQL interface页面顶部的Switch 目录详情 管理门户提供每个表,视图,过程和缓存查询的目录详细信息。管理门户SQL界面的过滤架构内容(左侧)组件允许您选择单个项目以显示其目录详细信息。 管理门户将一个超出可用范围的值修正为一个有效值:0修正为100; 一个小数四舍五入到下一个更大的整数; 大于10,000的数字更正为10,000。 目录的视图详细信息 Management Portal SQL接口还提供视图,过程和缓存查询的目录详细信息: 为每个视图提供以下目录详细信息选项: 查看信息:所有者名称,最后编译的时间戳。 打开表 如果在管理门户SQL接口的左侧选择表或视图,则会显示该表或视图的目录详细信息。页面顶部的打开表链接也变为活动状态。打开表显示表中的实际数据(或通过视图访问)。数据以显示格式显示。
Swagger接口管理文档 访问接口文档的网页:http://localhost:8080/swagger-ui/index.html 导入依赖 <dependency> <groupId DocumentationType.OAS_30) .apiInfo(apiInfoMyself()) .select() //开启选择扫描接口功能 ("你的名字", "https://www.bilibili.com", "javastudy111*@163.com")) .title("图书馆里系统——在线api接口文档 ") .description("欢迎各位前端大佬前来访问接口") .version("1.1") //自己随便定义这个接口第几版的 .build(); } } 添加具体描述 //为xxxcontroller这个类加注解 @Api(tags = "账户验证接口", description = "包括用户登录、注册、验证码请求等操作
为什么要使用一些插件或系统来管理API? 为了后端更好的与测试、前端协调开发和甲方验收文档交接工作(一般都会将给到甲方整个应用的接口文档、数据表结构、架构原理),所有一个团队能通过一个系统或插件协调相关人员,其他快速敏捷开发变得非常重要。 个人目前知道管理API方式 xxl-api,开源、简单、可Fork后自定义开发,但缺点就是功能不是特丰富,但一些小项目还是够用了,具体功能请移步到码云:https://gitee.com/xuxueli0323 总结 优点:开源,功能简单实用,有一套API分组、分业务、分用户权限管控,能更好的管理API接口,采用bootstrap的web管理端+SpringBoot(mvc三层架构)开发可更好的自定义扩展和调整 缺点:不能很好的与应用程序完成自动api的管理,需要手动录入,没法自动生成对应的接口文档进行交付。
接口管理工具推荐 接口开发完后,最终的目的是提供给其他系统/模块来使用的,因此,接口的管理是必不可少的。 接口管理的痛点 接口的管理常常面临很多的痛苦,这里就列举几个常见的,看看你是否也遇到过。 系统/模块太多、接口太多,没有系统统一管理所有接口。 代码修改后,接口文档没有及时更新,造成接口文档和实际接口不一致的现象。 接口管理系统自主研开发成本高。 接口管理缺少接口mock功能。 接口管理工具推荐 在日常工作过程中用过、接触过的接口管理工具也是不尽其数,下面介绍你可能使用过、没有使用过的接口管理工具,同时也介绍这些接口管理工具的优缺点。 自建接口管理系统 对于一些有一定规模的企业,在各项工程管理活动上都非常正规,各种ISO标准要遵守,自然对接口管理的要求也非常高,之前在国有银行,我们就是自建了接口管理系统,自建还是很消耗人力成本的
# 背景 在开发人员开发过程中,与各方交接(前端、后端、测试、第三方平台)往往会有提供接口文档的需要 在没有在线文档应用的情况下,传统的书写md或word,难以简单高效的完成编写文档工作,且面临着一次修改 ,重新导出、上传等问题 Yapi是目前最出色的开源接口管理平台之一,Apache Lisence,提供了在线的接口文档管理平台、高级Mock等工具,解放文档编写时间。 配合Easy-Yapi插件可实现无侵入式接口文档生成 # 现有产品对比 与现有产品相比Yapi具有如下优点 几乎没有学习成本,私有化部署 支持在线编辑 支持Postman接口导入(仅支持V1) 支持ApiFox 、Swagger接口导入 支持在线抓包导入 支持Swagger2.0格式导入、自动同步 配合EasyYapi idea插件零侵入式导入Controller,无需swagger注解 配合EasyYapi (识别为2个项目) 如果想要将RPC接口导出到同项目名的地方,加上@module指定导出项目名即可。
ChannelController /** * 修改渠道 */ @PreAuthorize("hasPermission('tienchin:channel:edit')") @Log(title = "渠道管理