sigoden / apitest

Apitest is declarative api testing tool with JSON-like DSL.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Enhancement: @openapi

sigoden opened this issue · comments

很多项目自带OpenApi/Swagger文档。
OpenAPI中包含了接口的路由信息,并定义了接口请求和响应的数据结构。
这些其实可以被测试项目复用的。

是否可以通过@openapi注解复用 OpenApi 中的信息?

{
	// 引入openapi文档
	@openapi("api")
	// 支持多个openapi文档
	@openapi("apiManage")

	// 复用addPet路由信息
	addPet1: { @openapi("api#addPet")
		req: {
			body: {
			}
		},
		res: {
			// 使用JsonSchema校验响应数据
			body: { @openapi("api#Pet") 
			}
		}
	}
}

这是个开放的Issue,邀请大家一起讨论下是否有必要引入这个特性,如何简单自然的引入。

// 引入openapi文档
@openapi("api")
// 支持多个openapi文档
@openapi("apiManage")

// 复用addPet路由信息
addPet1: { @openapi("api#addPet")
           /* 这一块为optional 
	req: {
		body: {
		}
	},
	res: {
		// 使用JsonSchema校验响应数据
		body: { @openapi("api#Pet") 
		}
	}
        */
}
commented

感觉 cli 工具可以通过解析 openapi 文件,自动生成一个 mixin 文件,定义好,请求地址,请求参数,返回值可以是@type 弱校验,这个文件不需要手动修改,接口变更重新生成便可,测试的时候依赖这个 mixin 文件,然后写参数及返回值的校验,这样可以把变化的与不变化的分开

这个功能在使用的便利性,就是个大的飞跃,和openapi结合生态更完善了👍