0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度“盘”一下Eolink这款免费API协作平台

jf_ro2CN3Fa 来源:芋道源码 作者:芋道源码 2022-12-15 14:59 次阅读

写代码,哪个程序员都不害怕。

写文档,哪个程序员都害怕!

为什么?

还不是因为 API 工具不好使,不便捷,同步麻烦,测试看不懂……

最近调研了身边一些开发团队,发现他们列举的工具中,都出现过同一款工具——Eolink。

今天这次我们深度“盘”一下 Eolink 这款免费 API 协作平台,围绕【智能生成+盘活 API 资产】这一功能上,到底投入了多大的开发成本,给我们带来了多少惊喜!

快速体验:https://www.eolink.com/?utm_source=w5104

本文重点围绕以下产研需求展开(文末有福利)。

  1. 当 API 代码更新之后,API 文档自动刷新;

  2. API 协作工具通过脚本进行自动刷新/同步;

  3. 基于 API 文档智能生成请求代码和业务代码;

当然在正式开始对接 Eolink 前,咱需要先使用 Python Flask 框架在本地构建一个微型项目,用于写接口代码。

阅读完这篇,你不但可以编写公司标准的 Python API 文档,还顺便掌握了 Swagger 与 Eolink 的对接,一举多得,一文多获。

一、Eolink 准备工作,Python 快速搭建 Swagger

我选用的 Web API 框架 Flask,所以搭建 Swagger 需要用到 Flasgger 模块,如果你用 FastAPI,可以不用多走这一步,直接使用 FastAPI 原生 API 文档即可。

使用 Flasgger 得到一个 Swagger UI 具体步骤,不做重点描述,咱们的目标是打通 SwaggerEolink,让 API 研发资产可以盘活,Swagger 简易部署流程请参考下述步骤。

首先安装 flasgger 模块。

pipinstallflasgger

然后新建 main.py 文件,同时输入如下代码(本地 Python 版本为 3.8),代码有点长,可以跳过阅读,直接复制代码到本地相应文件中

fromflaskimportFlask
fromflasggerimportSwagger

app=Flask(__name__)
swagger=Swagger(app)


@app.route('/eolink_user_add/',methods=['POST'])
defeolink_user(user):
"""
添加用户
---
tags:
-用户相关接口
description:
用户注册接口,json格式
parameters:
-name:body
in:body
required:true
schema:
id:添加用户
required:
-username
-password
properties:
username:
type:string
description:用户名
password:
type:string
description:密码
phone:
type:string
description:手机号
wx:
type:string
description:微信

responses:
201:
description:注册成功


example:{'code':1,'message':注册成功}
406:
description:注册失败
"""
pass


@app.route('/eolink_opts/')
defeolink_opts(t):
"""
Eolink功能描述
---
tags:
-第一个测试接口
description:
传入大类,返回清单
parameters:
-m_type:number
in:number
type:string
enum:['eolink','eolink1','eolink2','eolink3']
required:false
default:eolink
responses:
200:
description:功能清单
examples:{'eolink':['一站式API生产力工具','超强的API管理','超方便的API测试']}
"""
all_eolink_opts={
'eolink1':['API文档与研发管理','API监控和异常告警','API快速测试与自动化测试','API微服务网关'],
'eolink2':['支持所有主流协议','代码自动生成API文档','API文档自动生成代码','API版本管理','API变更通知'],
'eolink3':['支持在线、本地、客户端进行测试','一键进行回归/冒烟测试','快速创建测试用例','自动生成测试数据','丰富详细的测试报告']
}
ift=='eolink':
result=all_eolink_opts
else:
result={'eolink':all_eolink_opts.get(t)}

returnresult


@app.route('/',methods=['GET'])
defhello():
return"helloworld!"


if__name__=='__main__':
app.run()

使用 python main.py 运行 Flask 项目,然后访问 http://127.0.0.1:5000/apidocs/在浏览器得到如下视图,如果此时你获得界面与我一直,那么恭喜你,准备工作已经完成,后续我们需要对上述代码进行修改,目的是在 Eolink 每次 自动生成 API 文档 之后,对比差异。

作为一名合格的软件研发工程师,在公司团队协作开发的时候,一定要遵守团队 API 文档规范,边写代码,边写注释,边写文档。

34d4cd3a-7c3d-11ed-8abf-dac502259ad0.png

在上述界面中,找到 appispec_1.json 超链接位置,点击该链接,页面跳转到 Swagger 生成的 JSON 文件地址,如下所示。

http://127.0.0.1:5000/apispec_1.json

在浏览器中直接打开该 URL 地址,得到如下 JSON 格式的数据,下图为部分内容展示。

34ec44ec-7c3d-11ed-8abf-dac502259ad0.png

二、Eolink 通过 Swagger 文件,自动生成 API 文档

在前文拿到 JSON 文件地址后,就可以在 Eolink API 研发管理平台读取该网络文件,并自动生成API文档页面了,具体操作如下。

进入 API 管理控制台具体项目中左侧菜单栏找到【其它】,然后选择【API文档生成】。

可按下述动图进行操作。

34fa79cc-7c3d-11ed-8abf-dac502259ad0.gif

进入到 【自动生成API文档】功能页之后,选择【添加来源】按钮。

35117550-7c3d-11ed-8abf-dac502259ad0.png

在弹窗中选择通过 Swagger URL 生成 API 文档,点击下一步:

352520fa-7c3d-11ed-8abf-dac502259ad0.png

【添加来源】弹窗输入 Swagger 生成的 JSON 文件地址,就是刚刚得到的 JSON 文件地址,这里一定要注意,该地址能通过外网访问(因为 Eolink 服务器不能调用我们本地的数据),并且为 JSON 格式(刚刚已经核对过目标数据),然后参考下图进行填写。

上传前文获取的 JSON 文件到临时服务器,修改 Swagger.json 文件地址,点击确定,完成配置。

互联网公司项目,文档一般是支持外网访问的,这个问题只会在我们学习阶段碰到。

3537298a-7c3d-11ed-8abf-dac502259ad0.png

注意:上图右侧【完善配置】所有数据保持默认即可。

点击确定,完成来源配置,配置页面自动关闭,出现如下列表。

355e10b8-7c3d-11ed-8abf-dac502259ad0.png

点击同步按钮,将 Swagger 文件内容同步到 Eolink 中。

356ed70e-7c3d-11ed-8abf-dac502259ad0.png

再次切换到 API 列表页面,可以看到 API 同步之后的效果。

358e01ce-7c3d-11ed-8abf-dac502259ad0.png

此时打开 任意API 文档,可以查看到 API 描述,请求地址,请求参数,返回参数等其它信息,到这里 Eolink 已经成功进行同步。

如果我们 JSON 文件发生了任意修改,例如【添加用户接口】新增加一个 “年龄" 参数,此时只需要点击上文提及的同步按钮,即可更新 Eolink 平台 API 详细数据。

这里咱们需要做一个小小的总结,在公司团队协作的场景下,经常出现文档和代码不同步情况,所以我们引入了 Swagger 模块,让小组中的程序员,在编写代码的同时,只需要更新自己的代码和注释,即可自动生成 API 文档。

但 Swagger 只是一个用于生成、描述和调用 RESTful 接口的 Web 服务,它远远无法满足团队中对于API 的所有诉求,而 Eolink 在软件研发整个生命周期中,做了全方位的补充,从而 盘活 API 研发资产。

除了手动点击【同步】操作外,我们还可以通过 Open API 实现自动同步。

三、Eolink 通过 Open API 触发同步操作

本篇博客中使用的是 Open API V2 版本,在正式编写代码前,需要先在工作空间管理后台获取调用密钥。

密钥配置

点击在管理后台右上角头像位置的【账号设置】,进入工作空间设置菜单。

切换的页面中,选择 【Open API】,进入密钥配置。

35a1231c-7c3d-11ed-8abf-dac502259ad0.png

为了数据安全,请不要将密钥泄露。点击上图箭头指向位置,查看密钥明细,直接点击即可复制。

解析来我们查看一下 通过 Open API 触发同步操作的请求说明。

  • 请求协议:HTTPS

  • 请求方式:GET

  • 请求地址:https://api.eolink.com/v2/api_studio/management/api/auto_scan

  • 请求参数:

    • eo_secret_key:open api 的访问鉴权密钥,前文刚刚复制的字符串。
    • project_id:当前项目的ID,在【自动生成API文档】页面已经自动填充。
    • space_id:工作空间ID,同样为 Eolink 自动生成内容。
  • 请求响应

    • 数据请求成功,返回 JSON 格式数据,{"status":"success"}

有了这些标准之后,我们可以快速通过 Python 编写一个自动触发同步操作的脚本,代码如下。

importrequests

url="https://api.eolink.com/v2/api_studio/【其余内容请在API文档生成页面复制】"

res=requests.get(url)

print(res.text)

在运行代码前,先对前文的 Python Flask 接口代码进行一下修改,增加【用户来源】字段。然后使用上面的 3 行代码,即可实现自动化同步。上述代码运行结果如下所示。

{"type":"api","status":"success"}

阅读到这里,我们已经实现了【通过 Open API 触发同步操作】,你可以将代码部署到云服务器,并设置成自动任务,这样 Eolink 就可以实时的抓取服务端 API 文档,解放你的双手了。

四、Eolink 基于 IDEA 插件上传 API

Eolink 除了手动同步和以Open API 形式同步文档以外,还可以通过 IDEA 插件实现快速在研发工具上操作并上传API接口文档,而且比Swagger的方式还快,具体步骤如下所示。

打开 IDEA 插件,再插件市场搜索 Eolink ApiKit。

35c1c31a-7c3d-11ed-8abf-dac502259ad0.png

点击上图的 Install 即可安装。

接下来就需要对该插件进行配置,参照下图找到 Eolink Settings。

35d97cbc-7c3d-11ed-8abf-dac502259ad0.png

看一下 Eolink Settings 中的相关参数配置。

  1. Server:这里使用域名+/api 格式,例如这里是 https://space-e87yzg.w.eolink.com/api;

  2. SpaceKey:空间Key,复制上述域名中的Key即可,space-e87yzg;

  3. ProjectHashKey:前文 Open API 中用到的 密钥

  4. Token:你的账号;

  5. StringType:选择第一项即可。

然后在你的项目源码空白处,点击树表右键,选择 Generate Class Doc,一键生成全部 API 注释文档。

35fa04d2-7c3d-11ed-8abf-dac502259ad0.png

生成完毕,再次选择 Upload All Api 即可上传所有 API 注释到目标服务器,真正的一键生成文档,一键上传文档,如果你恰好使用的是 IDEA ,一定要尝试一下该方式,在 Eolink 的帮助下,写文档会变成一件非常轻松的事。

五、基于 Eolink API 文档智能生成请求代码和业务代码

前文我们做的所有工作,都是为了让现有 API 文档快速生成并同步到 Eolink 中,只有这样,我们才能体验 Eolink 这个一站式 API 生产力工具,盘活 API 研发资产时的强大。

下面将借助刚刚建立的接口,为大家展示 Eolink API 智能生成请求代码和业务代码这一重点功能,过程中还将为大家介绍 Eolink 的一些小细节亮点。

API 文档同步到 Eolink,一切才刚刚开始!

选择进入前文同步的任意接口中,可以得到该接口的详细描述,更多内容可在你的 Eolink 后台查看,这里仅展示局部。

361882cc-7c3d-11ed-8abf-dac502259ad0.png

如果你善于发现,一定会发现一个非常不起眼的按钮 ---【生成预览数据】,点击它。这个操作非常适合测试工程师进行数据模拟,尤其是当 API 接口包含大量参数待填写时,可以大幅度节约手写参数的消耗时间,而且测试的时候,可以避免使用 abc,aaa,1111,123,这些 “左手乱敲” 的输入数据。

3639dc9c-7c3d-11ed-8abf-dac502259ad0.gif

然后我们再看一个强大的功能,生成请求代码和业务代码,你可以借助 Eolink 生成指定 API 的语言调用代码,操作非常便捷,只需要点击API文档详情页右上角 “代码示例” 图标即可。

368b5b62-7c3d-11ed-8abf-dac502259ad0.png

在弹出的抽屉页中,可以选择你需要的代码示例,这里依据实战应用场景进行选择,例如我需要的是 NodeJS 代码,选择对应语言类型之后,可以得到下图所示内容,下载脚本即可用于请求代码和业务代码。

369d2202-7c3d-11ed-8abf-dac502259ad0.png

最后,我们在补充一个 Eolink 的亮点功能,Eolink 可以直接发起 API 测试,并且可以在接口前后增加 前置脚本后置脚本,二者的原理是在 API 执行前/后 执行 Javascript 脚本,从而改变请求参数或者进行签名加密等操作。

这部分内置变量和内置函数,学习和使用时可以参考 Eolink 手册,点击阅读。

使用方式非常简单,给大家罗列几个 HTTP 请求相关的函数,如下所示。

//输出信息
eo.info("输出自定义信息");

//设置http协议url,比如/user/login/admin?user_name={{name}}
eo.http.url.set("http://www.baidu.com");

//MD5加密
eo.crypt.md5(data)

上述内置函数,搭配上 Eolink 的 API 自动化测试,可以最大限度的扩展自动化测试需求,真正实现了一键发起测试,一键进行 API 回归测试。

六、总结

本篇博客,我们从 Eolink 与 Python Flask Swagger 文件打通开始,为大家介绍了两种 Eolink 同步API 文档的方法,实战中还是建议大家在服务器端部署 Open API 同步脚本,自动化实现 Swagger 和 Eolink 同步。

在同步的时候,我们可以进行更加详细的配置,扩展如下。

  • 数据同步方式:增量更新、全量更新、仅添加新API时更新;

  • 同步接口唯一标识:可选 接口标识,接口地址和请求方式,接口名称;

  • 新生成 API 文档状态设置:已发布,设计,待定,开发,测试等;

  • 将发生变更的 API 文档状态设置为:已发布,设计,待定等;

  • 将新生成 API 文档归到指定分组:可选API 分组目录。

Eolink 增加了非常详细的同步配置,多方面完善API文档更新细节。

除了API同步外,本文还给大家介绍了 Eolink 的几个亮点功能,例如自动生成预览数据,快速生成请求代码和业务代码,前置后置脚本添加。

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1489

    浏览量

    61854
  • 工具
    +关注

    关注

    4

    文章

    309

    浏览量

    27750

原文标题:老油条用什么工具写文档?

文章出处:【微信号:芋道源码,微信公众号:芋道源码】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    api驱动的云服务是什么意思?

    API驱动的云服务是指利用API技术来驱动和提供云服务的模式。在这种模式,云服务提供商会公开系列的API接口,允许开发者或应用程序通过调
    的头像 发表于 11-14 10:06 137次阅读

    如何在低成本ARM平台部署LVGL免费图形库,基于全志T113-i

    :完全免费,遵循开源协议,促进社区共享与协作。 控件资源丰富:提供丰富的控件,动画效果流畅,增强GUI的交互性和视觉吸引力。 跨平台可移植:支持多种操作系统和硬件平台,易于在不同环境中
    发表于 10-29 09:55

    使用API Post测试阿里云物联网平台动态注册

    使用API Post测试阿里云物联网平台动态注册
    的头像 发表于 10-05 19:08 229次阅读
    使用<b class='flag-5'>API</b> Post测试阿里云物联网<b class='flag-5'>平台</b>动态注册

    探索机器人快换技术的未来之路:智能化与协作的革新

    机器人快换技术正经历变革,AI、机器学习、传感器、机器视觉及协作技术将推动其智能化、高效化、灵活化发展,提升生产效率,成为产业升级的重要力量。
    的头像 发表于 09-26 11:26 215次阅读

    全球视野API资源,看幂简集成如何整合国内外API

    在全球数字化浪潮的推动API(应用程序编程接口)已成为连接不同系统和数据的桥梁,是企业数字化转型的关键。全球各地的企业都在进行数字化转型,它们不约而同地寻求通过API快速集成新技术,以提高效率
    的头像 发表于 07-30 14:23 302次阅读
    全球视野<b class='flag-5'>下</b>的<b class='flag-5'>API</b>资源,看幂简集成如何整合国内外<b class='flag-5'>API</b>

    欢创播报 支付宝“碰一下”正式发布

    1 支付宝“碰一下”正式发布 近日,在支付宝开放日上,支付宝宣布升级条码支付体验,推出“支付宝碰一下”,用户无需展示付款码,解锁手机碰一下商家收款设备,最快步完成支付。据介绍,“碰
    的头像 发表于 07-11 11:32 860次阅读
    欢创播报  支付宝“碰<b class='flag-5'>一下</b>”正式发布

    鸿蒙开发接口公共事件与通知:【FFI能力】 N-API在Android、iOS平台应用的使用指导

    N-API接口可以实现ArkTS/TS/JS与C/C++(Native)之间的交互,ArkUI-X中支持的N-API接口情况和使用场景请见[FFI能力(N-API)]。本文档以[ArkUI-X/Samples]中的Native样
    的头像 发表于 05-25 16:33 1870次阅读
    鸿蒙开发接口公共事件与通知:【FFI能力】 N-<b class='flag-5'>API</b>在Android、iOS<b class='flag-5'>平台</b>应用的使用指导

    讯飞星火Lite API开放免费永久,星火Pro/Max API价格0.2元

    5月22日,科大讯飞宣布旗下讯飞星火Lite API完全免费向公众开放,满足在线联网搜索及低算力推理与模型精调等特殊需求。同时,讯飞星火Pro/Max API的定价则为每万tokens收取0.21元。
    的头像 发表于 05-22 11:43 1089次阅读

    华为云发布 CodeArts API,为 API 护航

    4 月 10 日,华为云正式发布 API 全生命周期管理体化协作平台 CodeArts API,支持开发者高效实现
    的头像 发表于 05-09 23:17 507次阅读
    华为云发布 CodeArts <b class='flag-5'>API</b>,为 <b class='flag-5'>API</b> 护航

    用W25M02G NAND FLASH做U,请问有没有nand flash的U驱动?

    最近在用W25M02G这款NAND FLASH做U,之前用的W25Q64,不需要坏块管理,读写也是以页的,NAND FLASH多了坏块,多了扇区重入的交换区管理,请问有没有比较好的驱动参考一下
    发表于 04-25 06:44

    这款小巧神器,次解决两种缺陷检测需求

    空间要求较高的应用场景体式视觉产品的优势就非常突出,明治传感就用这款尺寸仅如个蓝牙耳机盒大小的视觉传感器为客户解决了不少视觉检测难题,本期小明就来分享
    的头像 发表于 03-19 08:23 372次阅读
    <b class='flag-5'>这款</b>小巧神器,<b class='flag-5'>一</b>次解决两种缺陷检测需求

    零一万物正式发布Yi大模型API开放平台

    近日,零一万物正式发布Yi大模型API开放平台,为开发者提供通用Chat、200k超长上下文、多模态交互等模型。
    的头像 发表于 03-17 09:55 1157次阅读

    体验一下这款免费的云手机,大家觉得效果怎么样?

    现在市面上有许多云手机品牌,云手机品牌太多,都要把人挑花眼了,此时我们可以通过体验一下免费的云手机,来了解这款云手机效果怎么样,并且看看自己玩的游戏应用能不能兼容、运行是否流畅稳定,其实还是有不少
    的头像 发表于 01-15 17:34 1348次阅读

    新时代的内容协作平台:释放企业内容生产力,提升企业效能

    在当今数字化时代,企业面临着日益增长的文档管理挑战。传统的文件编辑方式已经无法满足团队合作的需求,而新时代的内容协作平台作为创新的文档管理解决方案,为企业带来了全新的内容管理与协作
    的头像 发表于 12-25 19:00 582次阅读
    新时代<b class='flag-5'>下</b>的内容<b class='flag-5'>协作</b><b class='flag-5'>平台</b>:释放企业内容生产力,提升企业效能

    介绍一下芯片的VIA pillar

    Via pillar,又可以叫Via ladder。貌似Cadence家喜欢叫pillar,synopsis喜欢叫ladder,我也不知道它们为啥不能统一一下名称。
    的头像 发表于 12-06 14:00 842次阅读