以我们的项目为例。
我们的项目是纯后台服务项目,即没有前端页面,只对外提供服务;项目基于springboot,引入spring-boot-starter-web,直接公开接口,消息使用的json,很少接口是从旧系统迁移过来的,所以为了让调用方尽可能小的修改,保留了xml消息;在正式的生产环境中,内置的tomcat也是用;集成了swagger,在线自动生成界面文档。
orm框架选择mybatis。由于项目中的查询大多是单表查询,且查询条件相对固定,所以标注做出的sql语句是直接绑定的。
因为项目不仅使用了关系型数据库,而且经过处理关联后在mongodb中保存了更多的数据,所以项目也使用了spring数据mongodb。我们的mongodb已经部署了副本集,使用spring数据mongodb,通过简单的配置就可以完成对多个mongob的访问。如果其中一个mongodb挂了,对服务没有影响,所以我们可以在扩展mongodb时在线进行(扩展内存和cpu时mongodb需要停止)。
在与一些系统的交互中使用rabbitmq,只要将spring-boot-starter-amqp引入springboot,其实可以很容易地与rabbitmq集成。生产者和消费者都很方便。
因为是纯接口服务,为了减轻数据库的压力,我们根据业务场景(数据变化不频繁,业务场景对实时性要求不是很高)将部分接口的结果直接缓存到redis中。在整合redis的时候,我们前后尝试了两种
springboot项目,最简单的与redis集成可以直接使用@cach
可以离线使用。
apifox函数
接口设计:apifox接口文档遵循openapi3.0(原swagger)和jsonschem。一个标准的同时,提供了一个非常容易使用的可视化文档管理功能,零学习成本,非常高效。并支持界面文档的在线共享。
接口调试:apifox拥有postman的所有功能,比如环境变量、前/后脚本、cookie/session全局共享等等,而且比postman更高效易用。界面运行后,点击另存为用例按钮,生成界面用例,然后就可以直接运行界面用例,不需要输入任何参数,非常方便。自定义脚本100%兼容postman文法,支持运行javascript、java、python、php、js、beanshell、go、shell、ruby、lua等多种语言代码。
接口用例:通常,一个接口会有各种用例,比如参数正确的用例、参数错误的用例、数据为空的用例、数据状态不同的用例等等。运行接口用例时,会自动检查数据的正确性,用接口用例调试接口效率很高。
接口数据mock:内置的mock.js规则引擎非常方便mock生成各种数据,你可以在定义数据结构的同时编写mock规则。支持添加期望与展望根据请求参数返回不同的模拟数据。最重要的是,apifoxzeroconfiguration可以模拟出非常人性化的数据,本文后面会介绍。
数据库操作:支持读取数据库数据,并将其作为接口请求参数。支持读取数据库数据,用于验证(断言)接口请求是否成功。
接口自动化测试:提供接口集测试,可以通过选择接口(或者接口用例)快速创建测试集。目前接口自动化测试的更多功能还在开发中,敬请期待!目标是:jmeter的所有功能基本都有了,要更好的使用。
快速调试:一种类似于postman的接口调试方法,主要用于临时调试一些没有文档的接口,不需要事先定义接口就可以快速调试。
代码生成:根据接口和数据模型的定义,系统自动生成接口请求代码、前端业务代码和后端业务代码。
团队合作:apifox为团队合作而生,界面云实时同步更新,团队/项目/成员权限管理成熟,满足各类企业需求。