玩转API
快速开启 - ApiHug如何在15分钟内,使用 ApiHug 启动一个API开发项目.https://apihug.com/zhCN-docs/start
📐设计先行
通过统一的API 设计元语(DSL, domain specific language), 让API 设计更语言化(Describe);实现高度的一致化,和高复用。
📑协议驱动
OAS (OpenAPI specification), 是 ApiHug世界的 "金科玉律", 严格保证定义 ↔ 实现之间同构(isomorphism)态射。
🗺️单一信任源
实现 API 从:蓝图→施工→测试→落地,不走样, 不变形,不改味。极致沟通效率和极低信任成本。
❤️ 开发同理心
置身于多种角色,感同身受,在快和慢,现在和将来,个体和团队上综合平衡,极具同理心是ApiHug 人文基础,她不仅仅是一段代码,一个工具,一种方式。
Kola
大家都知道我要对测试下手了 :-), 在考察了九九八十二个方案后在放弃的边缘前(一入测试深似海,不如继续去搬砖), 只能舍弃和妥协, 因为我们需要:
简单,超级简单;do not make me learning!
傻瓜,超级傻瓜,人人都能懂(业务方也能写,最后是模型给写), do not make me thinking
不会(容易)犯错,想犯错也不行
效率高,易维护
DSL, 静态校验;大家都知道我对DSL 比较推崇
IDE 支持(或者低成本改造)
通用,和 1&2对应
高度模块化、复用, 给老板们省钱
各种人员友好
.....
最终选择了:
BDD 风格(标准)
Groovy DSL
java poet 定义动态代码
junit5 + rest-assured + assertj + json-path+wiremock 底座
为什么?
spring cloud contact 太难理解了,团队学习成本太高
karate :IDEA 支持居然要钱,脚本用js 引擎,不符合java 范
cucumber: 嗯, 还有很多需要处理,实现和定义分裂
spock: 要点习惯迁移
此方案的优点:
学习成本低
BDD 范能保留
接近java语法
模块化
测试用例正规化管理
服务端测试, 客户端mock 一并解决(spring cloud contract记大功)
缺点
Java poet 需要学习==但是spring 也是用poet生成代码的哦,所以不怕
要效率更近一层,需要稍微改造IDEA:模版和语法提示,小case
需要配套使用,否则威力大减
支持中间件:MQ, DB,CACHE,UI,Perf,异步 etc
是不是很期待呢?