精华内容
参与话题
问答
  • 常见的API接口管理工具

    万次阅读 2018-11-03 17:34:35
    1、Postman ...幸运的是,Postman可以将调试过的请求保存到Collection中。形成的Collection就可以作为一份简单有效且支持在线测试的接口文档,使用同一账号登录就可以做到分享和同步。对QA来说,使用Postman进行接口...

    1、Postman

    Postman是被大家所熟知的网页调试Chrome插件,我们常常用它来进行临时的http请求调试。幸运的是,Postman可以将调试过的请求保存到Collection中。形成的Collection就可以作为一份简单有效且支持在线测试的接口文档,使用同一账号登录就可以做到分享和同步。对QA来说,使用Postman进行接口测试和接口文档维护是同一件事情,测试即文档,维护成本也很低。官网:https://www.getpostman.com

    2、Swagger

    “Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。”简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案。Swagger主要包含了以下4个部分:
    1. Swagger可以直接嵌入项目中,通过开发时编写注释,自动生成接口文档;
    2. Swagger包含了Swagger Editor,它是使用yaml语言的Swagger API的编辑器,支持导出yaml和json格式的接口文件;
    3. Swagger包含了Swagger UI,它将Swagger Editor编辑好的接口文档以html的形式展示出来;
    4. Swagger支持根据定义的接口导出各种语言的服务端或客户端代码。
    官网:https://swagger.io/

    3、RAP2

    RAP来自阿里巴巴,是一个可视化接口管理工具 通过分析接口结构,使用mock动态生成模拟数据,校验真实接口正确性, 围绕接口定义,通过一系列自动化工具提升我们的协作效率。可以在线使用,也可以选择本地部署。一个GUI的WEB接口管理工具。在RAP中,您可定义接口的URL、请求&响应细节格式等等。通过分析这些数据,RAP提供MOCK服务、测试服务等自动化工具。RAP同时提供大量企业级功能,帮助企业和团队高效的工作。官网:http://rapapi.org/platform/home.do

    4、YApi

    YApi是由去哪网前端团队开源的一款接口管理工具,功能强大,可以轻松的自己部署。而且支持使用docker部署,使用成本很低了。官网:https://yapi.ymfe.org

    5、Eolinker

    eolinker是一个接口管理服务网站,如果不想自己部署YApi、Rap2、Swagger等的团队可以使用,免费版的功能对于小型团队来说足够了。官网:https://www.eolinker.com

    6、DOClever

    可以对接口信息进行编辑管理,支持 get,post,put,delete,patch 五种方法,支持 https 和 https 协议,并且支持 query,body,json,raw,rest,formdata 的参数可视化编辑。同时对 json 可以进行无限层次可视化编辑。并且,状态码,代码注入,markdown 文档等附加功能应有尽有。接口调试运行,可以对参数进行加密,从 md5 到 aes 一应俱全,返回参数与模型实时分析对比,给出不一致的地方,找出接口可能出现的问题。如果你不想手写文档,那么试试接口的数据生成功能,可以对接口运行的数据一键生成文档信息。mock 的无缝整合,DOClever 自己就是一个 mock 服务器,当你把接口的开发状态设置成已完成,本地 mock 便会自动请求真实接口数据,否则返回事先定义好的 mock 数据。支持 postman,rap,swagger 的导入,方便你做无缝迁移,同时也支持 html 文件的导出,方便你离线浏览!项目版本和接口快照功能并行,你可以为一个项目定义 1.0,1.1,1.2 版本,并且可以自由的在不同版本间切换回滚,再也不怕接口信息的遗失,同时接口也有快照功能,当你接口开发到一半或者接口需求变更的时候,可以随时查看之前编辑的接口信息。自动化测试功能,目前市面上类似平台的接口自动化测试大部分都是伪自动化,对于一个复杂的场景,比如获取验证码,登陆,获取订单列表,获取某个特定订单详情这样一个上下文关联的一系列操作无能为力。而 DOClever 独创的自动化测试功能,只需要你编写极少量的 javascript 代码便可以在网页里完成这样一系列操作,同时,DOClever 还提供了后台定时批量执行测试用例并把结果发送到团队成员邮箱的功能,你可以及时获取接口的运行状态。团队协作功能,很多类似的平台这样的功能是收费的,但是 DOClever 觉得好东西需要共享出来,你可以新建一个团队,并且把团队内的成员都拉进来,给他们分组,给他们分配相关的项目以及权限,发布团队公告等等。官网: http://doclever.cn

    7、Apizza

    1.项目管理;2.api分类管理;3.自动保存request 和 response,这个可以为以后自动化测试做准备;4.跨域模拟请求5.自动生成文档这个功能很好用,可以直接把参数分析成文档。最后导出成html文档。官网:http://apizza.cc

    8、EasyAPI

    接口文档相对简单,不过对于那些喜欢简单接口文档的朋友来说,easyAPI 也不失为一个不错的选择,界面简单明了,配色粉蓝粉蓝很可爱,不过在我试用的过程中,界面好像不是很稳定,有些按钮点击时没有反应,图标时可见时不可见。而且因为接口文档和接口测试不是在一个菜单之下的,两个功能之间的转换有些费力。同时也有回收站,版本管理等功能,总的来说,就是比 eolinker 简单,比 rap 好看。不过接口测试的功能还是挺强大的,左边填数据,右边显示结果,感觉还是挺直观的,如果能支持本地测试就更好啦。官网:https://www.easyapi.com/

    9、CrapApi

    CrapApi接口管理系统实际上是一个java开源项目。一个由anjularjs+bootstrap+springMVC搭建的免费开源的API接口管理系统(应用接口管理系统)后台开发语言为java,主要技术:anjularjs、bootstrap、springMVC、hibernate、maven Application Programming Interface。演示地址:http://api.crap.cn 或http://api2.crap.cn  账号:super 123456 。系统特点: 系统支持管理员管理、权限控制、角色管理 支持多项目、多模块划分,同时支持私密项目、模块密码访问 支持数据字典管理、支持数据字典密码访问 支持项目错误码管理、支持接口拷贝等功能 支持前端菜单自定义,支持管理员菜单自定义。官网:https://github.com/EhsanTang/CrapApi

    展开全文
  • API测试工具Top 10 你都用过吗?

    千次阅读 2019-06-11 13:05:46
    2018年API测试工具Top10 本文首发于微信公众号: 【软测小生】 API测试(应用程序编程接口测试)是一种软件测试类型,它着重于确定所开发的API是否满足关于应用程序的功能、可靠性、性能和安全性的预期。 根据谷歌...

    2018年API测试工具Top10

    本文首发于微信公众号: 【软测小生
    2018年十大API测试工具
    API测试(应用程序编程接口测试)是一种软件测试类型,它着重于确定所开发的API是否满足关于应用程序的功能、可靠性、性能和安全性的预期。

    根据谷歌Trends,在过去几年里,对API/Web服务测试的兴趣一直在稳步增长。Smartbear 2017年对5000多名软件专业人士的研究显示,在未来两年内,将超过50%的测试自动化的API测试人员的数量预计将增长30%(从59%增长到77%)。此外,80%的受访者表示他们负责一些API测试。

    为API自动化测试提供正确的流程、工具和解决方案比以往任何时候都更加重要。API测试是CI/DevOps实践成功的一个重要组成部分。

    本文将提供API测试工具排名靠前的总结,这些工具涵盖了开源和商业解决方案,测试团队可以选择这些解决方案来满足他们的需求。SoapUIKatalon StudioPostman是排名前三的工具。
    2018年Top5 API测试工具

    1. SoapUI

    SoapUI是一个用于API测试的无头功能测试工具,允许用户轻松地测试REST和SOAP API以及Web服务。

    免费版(Free package): 使用SOAPUI的免费包,用户可以获得完整的源代码并构建他们喜欢的特性。

    • 使用拖放(Drag )、指向(drop)和单击(Point-and-click),快速轻松地创建测试
    • 脚本的可重用性:只需几个步骤,就可以对功能测试用例 重用负载测试和安全扫描

    收费Pro版本:

    • 使用Groovy快速创建定制代码
    • 强大的数据驱动测试:从文件、数据库和Excel中加载数据,以便模拟消费者如何与api交互
    • 支持本地CI/CD集成,异步测试

    Website: https://www.soapui.org/
    价格: 免费 和 $659/年(美元)

    2. Katalon Studio

    Katalon Studio是一个用于API、Web和移动应用程序的免费测试自动化工具。它正在成为API/Web服务测试的领先工具,并将自己定位为面向开发人员和测试人员的全面端到端**(end-to-end)**自动化解决方案。
    Katalon Studio使用各种类型的命令和参数化功能支持SOAP和REST请求。此外,在排名靠前的 API工具中,将UI和API/Web服务结合起来用于多个环境(Windows、Mac OS和Linux)的功能被认为是Katalon Studio的独特优势。

    功能亮点:

    • 同时支持SOAP和Rest
    • 所有在一个商店的API, WebUI和移动测试和综合能力之间。
    • 支持数据驱动的方法。
    • 可以用于自动化和探索性测试吗
    • 支持CI / CD集成。
    • 支持AssertJ(最强大的断言库之一),使用BDD样式创建流畅的断言
    • 通过手动和Groovy脚本模式,适合非技术人员和专业人员。

    Website: https://www.katalon.com
    价格: 免费

    3.Postman

    最初作为Chrome浏览器插件,Postman现在用Mac和Windows的原生版本扩展了他们的解决方案。

    • 对于那些不想在集成开发环境中使用与开发人员相同的语言编写代码的人来说,Postman是一个很好的API测试选择。
    • 易于使用的REST客户端
    • 丰富的界面,使其易于使用
    • 可以同时用于自动化测试和探索性测试
    • 可以运行在Mac、Windows、Linux和Chrome应用程序上吗
    • 有很多集成,比如对Swagger和RAML格式的支持
    • 具有运行、测试、文档和监视功能
    • 不需要学习一门新语言
    • 使用户能够轻松地与团队共享知识,因为他们可以打包所有的请求和期望的响应,然后发送给他们的同事。

    Website:https://www.getpostman.com/
    价格:免费- $21美元/用户/月

    4. Tricentis Tosca

    Tricentis Tosca是一个针对敏捷和DevOps的持续测试平台。Tricentis Tosca的好处包括:

    • 支持许多协议数组:HTTP(s) JMS、AMQP、Rabbit MQ、TIBCO EMS、SOAP、REST、IBM MQ、NET TCP
    • 集成到敏捷和DevOps循环中
    • 使用基于模型的测试自动化最大化重用和可维护性
    • API测试可以跨移动、跨浏览器、打包应用程序等使用。
    • 利用新技术实现可持续的自动化
    • 减少回归测试的时间

    Website: https://www.tricentis.com/
    定价: Contact Sales(接触销售)

    5. Apigee

    Apigee是一个跨云API测试工具,允许用户度量和测试API性能,支持并使用Swagger等其他编辑器构建API。

    • 它是多步的,由Javascript支持
    • 允许设计监控、部署和测试api
    • 通过跟踪API流量、错误率和响应时间来确定性能问题
    • 从开放API规范轻松创建API代理并将其部署到云中
    • 基于单个代码库的云、内部部署或混合部署模型
    • 用于应用程序和api的PCI、HIPAA、SOC2和PII
    • Apigee是专门为数字业务以及支持它的数据丰富的移动驱动api和应用程序而构建的。

    Website: https://apigee.com/api-management/
    价格:免费试用——每月2500美元

    6. JMeter

    JMeter(开源)广泛用于功能API测试,尽管它实际上是为负载测试创建的。

    • 支持重放测试结果
    • 自动处理CSV文件,允许团队快速为API测试创建惟一的参数值。
    • 由于JMeter和Jenkins之间的集成,用户可以在CI管道中包含API测试
    • 它可以用于静态和动态资源性能测试

    Website:https://jmeter.apache.org/
    价格:开源

    7. Rest-Assured

    REST-assured是一种开放源码的特定于Java领域的语言,它使测试REST服务更加简单。

    • 有一堆内置的功能,这意味着用户不必从头开始编写代码。
    • 与Serenity自动化框架无缝集成,这样用户就可以将UI和REST测试合并到一个框架中,生成出色的报告。
    • 支持BDD Given/When/Then语法
    • 用户不一定要成为HTTP专家

    网站:http://rest-assured.io/
    价格:开源

    8. Assertible

    Assertible是一个专注于自动化和可靠性的API测试工具。

    • 支持通过连续集成和交付管道的每个步骤自动化API测试。
    • 支持在部署后运行API测试,并与GitHub、Slack和Zapier等熟悉的工具集成。
    • 支持使用诸如JSON模式验证和JSON路径数据完整性检查等交钥匙断言验证HTTP响应

    网站:https://assertible.com/
    价格:免费- $500(美元)/月

    9. Karate DSL

    Karate DSL是一种新的API测试工具,它帮助以一种简单的方式为基于API的BDD测试创建场景,而无需编写步骤定义。这些定义是由Karate DSL创建的,因此用户可以快速启动API测试。

    • 构建在Cucumber-jvm之上
    • 可以像任何标准Java项目一样运行测试并生成报告
    • 可以在不需要任何Java知识的情况下编写测试
    • 测试即使是非程序员也很容易编写
    • 支持配置切换/登台,多线程并行执行

    网站:https://github.com/intuit/karate
    价格:开源

    10. 没有一本适用(one-size-fit-all)的工具

    很扎心,但却是真的!
    我们相信上面的列表列出了最好的解决方案,如果您计划采用API自动化测试的话。然而,就像这个行业的大多数解决方案一样,找到一个理想的工具来解决所有问题几乎是不可能的。
    有些人可能会发现商业收费版(Postman, Tricentis Tosca,…)的特点已经足够了,但所有权的成本将是关键因素。
    开源解决方案(Rest-Assured, Karate DSL,…)是负担得起的,但需要熟练的资源和努力来实现正确的框架。似乎是成本和其他因素(Katalon Studio、Postman)之间的相对平衡的工具对于需要考虑的特定项目类型可能有缺陷。
    没有一本适用(one-size-fit-all)的工具
    API测试确立了自动化测试的趋势,并且将开发更多的工具来满足软件开发团队日益增长的需求。找到完美的工具仍然很困难,但是我们有一个好消息,你比以前有了更多的选择。仔细考虑您的需求,每种解决方案的优缺点在早期不要太雄心勃勃,并从上面的列表中挑选出5个相关的候选者。通过创建这些解决方案的POC,您将更好地了解项目的关键因素,并对候选列表进行微调。这种方法为您提供了一个很好的机会,当您的项目更加成熟时,您可以为下一个选择的当前状态和信息确定合适的工具。

    展开全文
  • 介绍几款常用的在线API管理工具

    千次阅读 2018-09-12 10:01:21
    基于这个背景,下面介绍几个常用的API管理工具,方便你与调用方更高效的沟通测试: Swagger 官网地址:https://swagger.io Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件,是一个规范和完整的...

    在项目开发过程中,总会涉及到接口文档的设计编写,之前使用的都是ms office工具,不够漂亮也不直观,变更频繁的话维护成本也更高,及时性也是大问题。基于这个背景,下面介绍几个常用的API管理工具,方便你与调用方更高效的沟通测试:

    Swagger

    官网地址:https://swagger.io Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件,是一个规范和完整的框架,标准的,语言无关,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

    目前最新版本是V3,SwaggerUI是一个简单的Restful API 测试和文档工具。简单、漂亮、易用。通过读取JSON 配置显示API. 项目本身仅仅也只依赖一些 html,css.js静态文件. 你可以几乎放在任何Web容器上使用。

                                         

    RAP

    官网地址:http://rapapi.org/org/index.do

    RAP来自阿里巴巴,是一个可视化接口管理工具 通过分析接口结构,使用mock动态生成模拟数据,校验真实接口正确性, 围绕接口定义,通过一系列自动化工具提升我们的协作效率。可以在线使用,也可以选择本地部署。一个GUI的WEB接口管理工具。在RAP中,您可定义接口的URL、请求&响应细节格式等等。通过分析这些数据,RAP提供MOCK服务、测试服务等自动化工具。RAP同时提供大量企业级功能,帮助企业和团队高效的工作。

    在前后端分离的开发模式下,我们通常需要定义一份接口文档来规范接口的具体信息。如一个请求的地址、有几个参数、参数名称及类型含义等等。RAP 首先方便团队录入、查看和管理这些接口文档,并通过分析结构化的文档数据,重复利用并生成自测数据、提供自测控制台等等... 大幅度提升开发效率。

                                  

    APIDOC

    GitHub 地址:https://github.com/apidoc/apidoc

    APIDOC可以根据代码注释生成WEB API文档,支持大部分主流开发语言,Java、javascript、php、erlang、perl、python、ruby等等,相对而言,web接口的注释维护起来更加方便,不需要额外再维护一份文档。APIDOC从注释生成静态html网页文档,不仅支持项目版本号,还支持API版本号。

    操作步骤也是相当简单,依据官网的操作指南完成一个简单的示例。这是一个示例demo,感受一下http://apidocjs.com/example_basic/

                                      

    Spring REST Docs

    官网地址:http://projects.spring.io/spring-restdocs/

    Spring的文档帮助产生RESTful的服务文档。它结合了手写文档写的asciidoctor和自动生成与Spring MVC测试生成的片段。这种方法可以让你突破Swagger那样的工具产生的文件的局限性。它可以帮助你制作文件,准确,简洁,结构良好。生成的文档,可以让你的用户得到一个最低限度的他们所需要的信息。

                                  

    其它

    除了上面介绍到一些开源或免费的API管理工具,国内外同样也有一些公司在做这个事情,根据使用需求做好选型即可,适合自己的才是最好的。

    展开全文
  • API文档管理工具

    万次阅读 2018-10-20 21:44:05
    前后端分离开发,随之而来的问题,解决方法:接口文档管理工具,swagger,Yapi,API Blueprint,apidocjs,JApiDocs

    系统庞大之后,前后端分离开发,前端调用后端提供的接口,请求协议一般是 HTTP,数据格式一般是 JSON。后台只负责数据的提供和计算,而完全不处理展现逻辑和样式;前端则负责拿到数据,组织数据并展现的工作。这样结构清晰,关注点分离,前后端会变得相对独立并松耦合。好处多多。

    但是这样带来很多问题,前端可能需要拿到后端的数据之后,才能开始开发工作,等前端开发完成之后,然后再与后端一起联调。耗时不说,如果业务的需求更改,后端接口变更,怎么快速便捷告知前端的开发人员?还有其他如文档维护和及时更新的问题。这样一来,编写文档也是个不小的负担。

    此时就需要一个在线接口文档平台/工具,提供接口的请求参数 requestBody 和响应参数 responseBody 的数据结构定义。但是仅仅有 requestBody 和 responseBody 的数据结构还是不行的,前端调用后端的接口时没有响应数据(接口还没有开发好),前端并不能开始干活。故而我们进一步要求这些工具具备模拟出真实数据的能力,即所谓的 mock server功能,暂时替代后台服务,这样方便前端联调。

    考虑到文档及时更新的负担,将文档写在代码里,开发人员编写代码时同时修改文档。然后通过工具从代码中抽出文档,并生成方便用户阅读的格式。此类工具早已存在,比如Java中的 javadoc,其他诸如:swagger、apiDoc。

    这类工具真的不要太多,到底哪个好用上手方便安装简单还真是众口难调的问题,而且需要试用一段时间才有感觉和感受,有时间成本在里面。不过,一般看团队看架构师的选择。

    swagger

    官网:https://swagger.io/
    Swagger 是一款RESTful 接口的文档在线自动生成+功能测试功能软件,一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,让部署管理和使用功能强大的API 变得简单。swagger,提供一种从项目代码中自动生成接口文档的功能,可以保持和代码的同步变化。通过 Swagger 你可以获得项目的一种交互式文档,客户端SDK的自动生成等功能。

    Swagger提供的工具:

    • Swagger Core:Swagger-core 是 Swagger的Java 实现,核心实现;
    • Swagger Codegen:提供根据swagger的接口定义文件(yaml形式),以一种命令行工具的形式,直接生产相应的代码;
    • Swagger Editor:使用 yaml 语言先定义简单的接口,然后通过 Swagger-codergen 就可以自动生成相应的服务端和客户端的调用代码;

    springboot 集成 swagger

    添加@Configuration & @EnableSwagger2 注解的配置类

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("fm.web"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("freemarker project RESTful APIs")
                    .description("this is freemarker app swagger-ui page")
                    .version("1.1")
                    .build();
        }
    }
    

    pom.xml 添加:

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>
    
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>
    

    参考GitHub

    常用注解
    TODO: 待整理。
    使用ApiImplicit
    Params描述多个参数
    (2) 使用ApiImplicitParam时,需要指定paramType,这样也便于swagger ui 生成参数的输入格式。
    paramType 有五个可选值 : path, query, body, header, form

    ApiImplicitParam 与 ApiParam 的区别
    ApiImplicitParam: This is the only way to define parameters when using Servlets or other non-JAX-RS environments。
    对Servlets或者非 JAX-RS的环境,只能使用 ApiImplicitParam。
    在使用上,ApiImplicitParam比ApiParam具有更少的代码侵入性,只要写在方法上就可以了,但是需要提供具体的属性才能配合swagger ui解析使用。
    ApiParam只需要较少的属性,与swagger ui配合更好。
    ModelAttribute 是Spring mvc的注解,这里Swagger可以解析这个注解,获得User的属性描述。

    Swagger2Markup

    主要用来将Swagger自动生成的文档转换成几种流行的格式以便于静态部署和使用,比如:AsciiDoc、Markdown、Confluence。基于Swagger,生成静态API文档,以便于构建更轻量部署和使用的API文档。
    开源主页:https://github.com/Swagger2Markup/swagger2markup

    Swagger Editor

    有在线版 https://editor.swagger.io/
    也可以本地安装:

    git clone git@github.com:swagger-api/swagger-editor.git
    cd swagger-editor
    npm install
    npm start
    npm install -g http-server #安装服务器
    unzip swagger-editor.zip #解压
    http-server swagger-editor #启动swagger-editor
    # 访问http://localhost:8080 即可看到。
    

    契约测试

    所以,在一开始就定一个契约就成迫在眉睫的事情,双方就API相关的内容,包括路径、参数、类型等达成一致,当然,这份契约并不是一旦创建就不能修改的,而且,如果一开始没有设计好,很有可能会频繁的修改。这个时候,要让双方都能够实时的跟踪最新的API就成了一个难题。还好,在总结前人的经验和教训之后,早已有应对之策,那就是契约测试。
    首先,我们先假设我们已经有了一份契约;然后,前端会根据这份契约建立一个Mock server,所有的测试都发往这个Mock server。有两方面的原因:一是这个时候可能后台的API还没有开发完成;二是有可能因为网络等其他方面的原因导致直接调用真实的后台API会很不稳定或者很耗时。如果后台的API实现和之前约定的并不一样,怎么能保证到集成的时候双方还能很顺利的集成呢?只需要让前端的测试定期连接真实的API执行一遍就能尽早的发现差异性。相应的测试和契约定义就需要更新以满足最新的业务需求。
    总之,进行契约测试的目的就是尽早的发现差异性,并作出调整,将最后集成的风险降到最低。

    对 swagger 的吐槽:
    耦合性太强,重复的注解信息?

    YApi

    简介

    官网
    Github
    YApi 由 YMFE(去哪儿大前端团队 & 移动架构组,由FE,iOS和Android工程师共同组成)开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护 API。
    特性

    • 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍;
    • 免费开源,内网部署,信息不会泄露;
    • 权限管理,扁平化权限设计,即保证大型企业级项目的管理和易用性,满足各类企业的需求;
    • 可视化接口管理 基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率;
    • Mock Server 易用的 Mock Server, 除支持普通的随机 mock 外,还增加 Mock 期望功能,根据设置的请求过滤规则,返回期望数据;
    • 自动化测试 完善的接口自动化测试,支持对 Response 断言,保证数据的正确性;
    • 数据导入 支持导入 swagger, postman, har 数据格式,方便迁移旧项目;
    • 插件机制 强大的插件机制,满足各类业务需求;

    安装

    使用 Docker 安装 YApi

    1、创建 MongoDB 数据卷
    docker volume create mongo_data_yapi
    2、启动 MongoDB
    docker run -d --name mongo-yapi -v mongo_data_yapi:/data/db mongo
    3、获取 YApi 镜像,并打 tag

    docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi
    docker tag registry.cn-hangzhou.aliyuncs.com/anoy/yapi yapi
    

    4、初始化 YApi 数据库索引及管理员账号

    docker run -it --rm \
      --link mongo-yapi:mongo \
      --entrypoint npm \
      --workdir /api/vendors \
      yapi \
      run install-server
    

    5、启动 YApi 服务:

    docker run -d \
      --name yapi \
      --link mongo-yapi:mongo \
      --workdir /api/vendors \
      -p 3000:3000 \
      yapi \
      server/app.js
    

    安装成功,访问地址 http://localhost:3000

    CentOS 系统安装

    # 安装 Node.js
    curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
    yum -y install nodejs
    # 安装编译工具包
    yum install gcc-c++ make -y
    # 安装配置MogoDB数据库
    cd /etc/yum.repos.d/
    vim mongodb.repo
    

    [mongodb]
    name=MongoDB Repository
    baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
    gpgcheck=0
    enabled=1

    yum install mongodb-org -y
    # 启动服务
    service mongod start
    ps -ef|grep mongod
    lsof -i :27017
    # 创建数据库
    mongo
    

    命令:

    use yapi
    db.wong.insert({“name”:“kenny wong”})
    show dbs
    db.createUser(‘yapi’,‘yapi321’)

    # 安装YApi 软件
    mkdir yapi
    cd yapi/
    git clone https://github.com/YMFE/yapi.git vendors
    cp config_example.json ../config.json
    vim config.json
    
    {
      "port": "3000",
      "adminAccount": "admin@admin.com",
      "db": {
        "servername": "127.0.0.1",
        "DATABASE":  "yapi",
        "port": 27017,
        "user": "yapi",
        "pass": "yapi321"
      },
      "mail": {
        "enable": true,
        "host": "smtp.163.com",
        "port": 465,
        "from": "***@163.com",
        "auth": {
            "user": "***@163.com",
            "pass": "*****"
        }
      }
    }
    
    npm install --production --registry https://registry.npm.taobao.org
    # 启动服务
    npm run install-server
    node server/app/js
    # 或者以后台服务形式运行
    node server/app/js &
    

    apiDoc

    官网:http://apidocjs.com/
    GitHub:https://github.com/apidoc/apidoc
    apiDoc,基于NodeJS实现,不基于任何框架,非常轻量级,适用于几乎所有流行语言,针对Restful API的文档自动生成工具。文档写在注释里面,提供历史版本比较功能。
    安装:npm install apidoc -g
    文档生成:apidoc -i src -o dest,该命令从当前工作目录的src子目录下读取所有代码文件,并从中抽取apiDoc的文档注释,然后生成HTML格式的文档,并保存在dest子目录下。

    入门

    在项目的主目录新建一个apidoc.json文件

    {
      "name": "example",
      "version": "0.1.0",
      "description": "A basic apiDoc example"
    }
    

    接口添加注释:

    /**
    * @api {POST} /register 注册用户
    * @apiGroup Users
    * @apiVersion 0.0.1
    * @apiDescription 用于注册用户
    * @apiParam {String} account 用户账户名
    * @apiParamExample {json} 请求样例:
    *?account=sodlinken&password=11223344&mobile=13739554137&vip=0&recommend=
    * @apiSuccess (200) {String} msg 信息
    * @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    * @apiSuccessExample {json} 返回样例:
    *                {"code":"0","msg":"注册成功"}
    */
    

    然后生成文档即可。

    API Blueprint

    官网 https://apiblueprint.org/
    语法类似 markdown;在 https://apiblueprint.org/tools.html 页面搜索下载一个工具,比如 snowboard, https://github.com/bukalapak/snowboard, 这个页面就是最好的文档:

    # 参考 GitHub 页面给出的安装指引:linux下安装,安装最新版 v1.7.0 版
    wget https://github.com/subosito/snowboard/releases/download/v1.7.0/snowboard-v1.7.0.linux-amd64.tar.gz
    tar -zxvf snowboard-v1.7.0.linux-amd64.tar.gz
    ./snowboard -h
    

    restdoc

    官网
    Spring 官方文档都是用 Spring REST Docs 生成的。restdoc通过单元测试生成snippets文件,snippets根据插件生成html等各种格式的文档。

    入门

    <dependency>
      <groupId>org.springframework.restdocs</groupId>
      <artifactId>spring-restdocs-mockmvc</artifactId>
      <scope>test</scope>
    </dependency>
    
    @RunWith(SpringRunner.class)
    @WebMvcTest(DemoController.class)
    // 开启配置生成snippets文件,并指定存放位置
    @AutoConfigureRestDocs(outputDir = "target/snippets")
    public class WebLayerTest {
    	@Autowired
    	private MockMvc mockMvc;
    	
    	@Test
    	public void shouldReturnDefaultMessage() throws Exception {
    	this.mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk())
    		.andExpect(content().string(containsString("Hello World")))
    		.andDo(document("demo"));
    	}
    }
    

    单元测试执行成功后,生成6个adoc文档:

    └── target
      └── snippets
        └── demo
          └── httpie-request.adoc
          └── curl-request.adoc
          └── http-request.adoc
          └── http-response.adoc
          └── request-body.adoc
          └── response-body.adoc            
    

    默认情况下,snippets是Asciidoctor格式的文件,包括request和response,httpie、curl、http三种请求模式。
    转化为html文档
    借助于asciidoctor-maven-plugin插件:

    <plugin>
    	<groupId>org.asciidoctor</groupId>
    	<artifactId>asciidoctor-maven-plugin</artifactId>
    	<executions>
    		<execution>
    			<id>generate-docs</id>
    			<phase>prepare-package</phase>
    			<goals>
    				<goal>process-asciidoc</goal>
    			</goals>
    			<configuration>
    				<sourceDocumentName>index.adoc</sourceDocumentName>
    				<backend>html</backend>
    				<attributes>
    					<snippets>${project.build.directory}/snippets</snippets>
    				</attributes>
    			</configuration>
    		</execution>
    	</executions>
    </plugin>
    

    adoc的书写格式参考官网,创建文件src/main/asciidoc/index.adoc:

    用 Spring REST Docs 构建文档
    This is an example output for a service running at http://localhost:8080:
    .request
    include::{snippets}/demo/http-request.adoc[]
    .response
    include::{snippets}/demo/http-response.adoc[]
    

    执行mvnw package命令生成HTML文档

    参考

    JApiDocs

    衔接前后端开发的的工具,实现代码即文档,持续集成接口测试的小目标。在前后端协作中的一个问题,即使有完善的 API 文档,在接口没有开发出来之前,要进行接口的测试,只能本地或者通过一些平台(rap)去模拟接口生成相关数据,这对于前端开发人员来说也是一个额外的负担。
    示例:
    特性

    • 深度集成 spring boot;
    • 支持生成 Java 等语言的 Response 模型代码;
    • 支持接口声明过时(@Deprecated),方便的文档目录等;
    • 支持自定义代码生成模板;
    • 以一个 Controller 作为一组接口导出到一个 Html 文件中;
    • 支持一般的 Java Web 工程,需要在相关方法添加额外的路由;

    官网:
    示例:https://yedaxia.me/play-apidocs/
    GitHub:https://github.com/YeDaxia/JApiDocs

    对比

    API 工具 文档支持 语言支持 接口测试
    swagger 功能强大,学习成本高,维护成本高 多语言 支持
    apiDoc 学习成本一般,维护成本高 多语言 不支持
    JApiDocs 代码即文档,学习和维护成本低 Java 支持发布到 RAP

    参考:
    Yapi
    使用 Spring REST Docs 创建 REST 服务文档
    Web API文档生成工具apidoc安装与使用
    API文档自动生成工具apiDoc简介

    展开全文
  • API Monitor(API监控工具

    万次阅读 2015-04-22 14:38:28
     它是一个强大的工具,看到的应用程序和服务是如何工作的,或跟踪,你在自己的应用程序的问题。 产品特点 64位支持  API监控支持监控的64位应用程序和服务。 64位版本只能用来监视64位应用程序和32位版本仅可...
  • swagger,apidoc,rap等在线API管理工具
  • 我从百度API开源库中复制的代码,运行报错说BMapLib未定义,请各位大神帮忙看看这是哪里出了问题 var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 15); var ...
  • 离线API 下载地址
  • 使用Win API创建工具

    千次阅读 2012-02-29 23:48:05
    作者:朱金灿来源:... 下面是创建一个标准工具栏的函数,(这里所谓标准工具栏是指工具栏按钮图片是WinSDK内置的)BOOL CreateStandardToolbar(HWND hParent) { // 首先需要先调用InitC
  • WebApi测试工具:PostMan

    千次阅读 2017-11-08 16:16:20
    写好一个Api接口不知道怎么测试?PostMan帮你解决 下载安装: https://www.getpostman.com/PostMan介绍: 模拟各种HTTP requests,从常用的 GET、POST 到 RESTful 的 PUT 、 DELETE …等等。 甚至还可以发送文件...
  • API自动生成工具

    千次阅读 2017-11-24 11:48:16
    Spring Boot中使用swagger 在Spring Boot中使用swagger...添加依赖: dependency>  groupId>io.springfoxgroupId>  artifactId>springfox-swagger2artifactId>  version>2.7.0ver
  • API Manager PHP 接口管理工具

    千次阅读 2020-06-29 18:01:27
    API Manager PHP 接口管理工具 接口开发过程中必不可少的的接口管理工具,今天推荐一个 API Manager 接口管理工具,是通过php编写的超轻量级工具,虽然作者只写了一些简单功能,但是可以自己扩展自己需要的功能,...
  • vb直接引入API制作工具

    千次阅读 2006-03-10 14:49:00
    大家都知道vb调用的api并不是像C/C++、delphi那样通过函数原形和静态连接库来引入的。vb调用api是通过Declare语句声明来实现的,这种方式的的调用从实现上和性能上都没有C/C++那些直接引入的好.以下是vb调用api的大体...
  • rest api文档工具——swagger入门

    千次阅读 2019-01-09 11:13:11
    Swagger是一款RESTFUL接口的文档在线自动生成+功能测试功能软件,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。以下是界面: 能够直接调试某一个接口,但是接口搜索功能有问题,如果能支持中文注释的...
  • restful api 文档定义工具

    千次阅读 2018-01-05 12:28:03
    apidoc install Nodejs 安装 下载Windows Installer (.msi) 版本的进行安装 Nodejs 全局变量设置 在安装目录下创建 node_global 和 node_cache 文件夹 ...npm config set prefix "C:\Program Files\nodejs\node_...
  • 原文地址:https://www.cnblogs.com/qswlteam/p/7687103.html 官网: http://doclever.cn Github: https://github.com/sx1989827/DOClever  码云: https://git.oschina.net/sx1989827/SBDoc  ...
  • C#进阶系列——WebApi 接口测试工具:WebApiTestClient 阅读目录 一、WebApiTestClient介绍 二、WebApiTestClient展示 三、WebApiTestClient使用 1、如何引入组件 2、如何使用组件 四、总结   正文 ...
  • 简单好用的api mock工具

    千次阅读 2018-08-10 11:14:13
    在前后端人员的协作开发中,如果你是...如果你不熟悉这些框架,又懒得去学的话,这里推荐一个简单好用的api mock工具。  使用方法 1、下载工具  去资源页下载api-mock-util-v1.0.2工具,是一个可执行的jar包。 ...
  • 工具使用】API表达工具----swagger

    万次阅读 2017-12-11 15:53:49
    Swagger是全球最大的OpenAPI规范(OAS)API开发工具框架,支持从设计和文档到测试和部署的整个API生命周期的开发。
  • 有一定工作年限的人一定会接触过通过word文档或者wiki的方式来进行接口对接交流的介质。后来为了方便协作修改接口,又逐渐的开始有人通过markdown文档,提交到版本管理系统的方式来编写接口。 后来随着浏览器的发展...
  • SolidWorks API中的术语及开发工具

    千次阅读 2018-08-21 15:30:27
    1、 OLE: 对象的嵌入与链接,他使应用程序之间能够通过数据嵌入或链接的方式来共享数据。含有嵌入或链接文档数据的应用程序被称为容器程序,提供文档数据编辑的应用程序则被称为服务器程序。ActiveX是OLE3.0,是OLE...
  • JAVA 调用API接口 工具类(get post )

    千次阅读 2019-06-20 14:23:35
    1.代码如下 package ... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;...import java.io.PrintWriter;...import java.util.*...
  • 离线API文档工具

    千次阅读 2018-12-17 23:22:09
    window 平台 Zeal Mac 平台 Dash
  • 为什么需要API文档? 你需要什么样的API文档? 代码、注释、文档一体化 类的标准Javadoc注释写法示例 方法的标准Javadoc注释写法示例 ...如何利用idea生成Javadoc ...下一篇:API管理工具之(二)——swagger...
  • RESTful API文档生成工具Wisdom RESTClient

    千次阅读 2017-10-01 21:47:45
    API文档生成工具 Wisdom REST client,生成API文档是基于用户的测试数据: 生成的RESTful API文档列表: API 接口详情:
  • 几个常用的API HOOK的工具

    千次阅读 2015-05-27 18:23:20
    Class ApiHook by Jeffrey Richter:  Perhaps the oldest version of ApiHook~~  Cantains Apihook.h and Apihook.cpp  Check the book for details   Detours: Microsoft,
  • JPush极光推送API工具类(JAVA)

    千次阅读 2017-04-22 15:08:48
    package com.util.push... import cn.jpush.api.common.resp.APIConnectionException; import cn.jpush.api.common.resp.APIRequestException; import cn.jpush.api.push.model.PushPayload.Builder; import cn.jpush.a
  • 目前,对于REST API在线测试的工具种类繁多,但是都有一个绕不开的话题——在开发阶段(并没有部署到公网),如何测试这些API接口呢?没错,这里介绍的“趣测API”会满足开发人样这样的需求。 前情提要很多人都有...
  • java Api 文档生成工具

    千次阅读 2019-03-04 09:30:39
    原文地址:https://blog.csdn.net/Genius_Ge/article/details/77152206
  • 目前主流web程序架构中,为了尽量降低前后端的耦合性,大多选择将前后端分离设计,前后...直到偶然发现了API Blueprint这款工具API Blueprint使用Markdown来编写API文档,本文简要介绍里API Blueprint的配置与使用。

空空如也

1 2 3 4 5 ... 20
收藏数 844,429
精华内容 337,771
关键字:

api工具