Tags: ae86sen/aomaker
Tags
合并v3.0.0 (#24) * 新增openapi代码生成器 新增接口定义请求核心 * 优化router的处理逻辑,增加prefix替换 * 1.优化converters组件处理逻辑和数据结构,增加钩子函数post_prepare支持用户自定义处理prepare后的数据 2.优化BaseAPIObjects基类请求属性的类型注解并增加类型校验 * 中间件及其注册机制优化 * 优化请求日志中间件 * 一、增加jsonschema断言 1.schema表来存储jsonschema,取自接口定义中的response(通过jsonschema_extractor转换) 二、通过泛型类增加响应模型建模 1.将response.json转化为模型来取值 * 1.增加接口类基类配置项 2.增加maker配置文件 * 增加代码生成部分rich打印 * 1.移除流量录制 2.移除har解析 3.移除swagger生成yaml 4.移除自动用例生成cli * 增加接口模型文件代码生成cli * 优化日志中间件 * 优化AO模型生成过程中类名出现同名的情况 * cattrs_converter增加uuid structure_hook * 优化接口类和模型的导入 * 修复生成模型字段类型和默认值不一致的情况 * 请求headers信息放到debug日志中 * 优化日志中间件,增加调用接口名和注释 * 简化jsonschema校验异常信息 * 整合schema_manager到cache中 * 对类型为uuid的字段添加jsonschema元数据信息 * 1.增加stats表,统计静态接口信息 2.增加service,提供项目统计信息、进度等接口给测试平台 3.增加pytest插件统计pytest进度信息 4.增加service,show等cli子命令 * 1.stats表增加自动创建 2.调整api统计收集逻辑 3.调整service API收集接口 * 脚手架增加stats表创建 * 1.查询接口的AO模型的query_params调整为必填参数,自动实例化 2.schema校验失败抛出Assertion错误 * 删除不必要的注释 * 调整core模块名 * 1.解析openapi暂时去掉翻译 2.优化sqlite查询接口 * 1.修复request body的schema非引用,而是直接定义的情况 2.调整模型代码生成时,接口类名的命名策略,并增加cli参数 * 1.模型命名策略改为字典存储 * 1.fix: 修复enum模型解析问题 2.优化request body/response的content多类型解析 * 优化black异常信息 * 1.调整cache.py模块名为storage.py 2.优化storage.py内部api * fix:修复config表插入数据报错问题 * 1.优化单/多进程下的session管理 2.优化鉴权管理 3.cache模块更名为storage * 1.调整优化response jsonschema存储方案 2.优化sqlite基类操作api 3.优化cache,stats,schema,config四张表的操作api * - 移除@dependence,@aysnc_api,@update - 优化aomaker live console页面ui - 优化脚手架 - 优化数据库路径查找 - 增加项目标记文件 * -feat: 增加mock server和cli命令 -bugfix: 修复openapi文档解析时anyof字段处理问题 -bugfix: 修复openapi文档解析时非必填参数类型问题 -update: 增加转换器对datetime,decimal,uuid等类型的反序列化钩子 -bugfix: 修复日志中间件未生效问题 -update: 脚手架增加mock示例文件 * 1.parser解析适配java泛型类 2.修复live console页面日志和进度条显示问题 * 优化aomaker live console UI * fix:修复main_run执行失败的问题 fix: 修复main_run带自定义参数时参数解析错误的问题 fix:修复脚手架创建时报错找不到.aomaker文件的问题 * feat: 增加兼容swagger2.0接口文档转换 fix: 修复模板渲染时模型中有python关键字导致失败的问题 * fix: 修复接口响应头无content-type时response转化json格式失败的问题 * fix: 修复解析器初始化时swagger2.0判断逻辑 * fix: 修复openapi解析器请求/响应体多媒体类型为通配符时未解析的问题 * feat: 优化 OpenAPI 解析器,增强对多媒体类型和参数处理的兼容性 主要变更: 1. 增强 SwaggerAdapter 对 body、formData 参数的处理逻辑 2. 优化 ClassNameStrategy 生成类名的策略 3. 改进 JsonSchemaParser 中模型名称和导入的规范化处理 4. 修复 OpenAPIParser 中请求体和响应体解析的边界情况 * 增强响应模式验证逻辑,支持动态更新和比较模式 * -remove: 移除APIRouter的backend_prefix和frontend_prefix参数,参数重组聚焦在post_prepare钩子函数中处理 * 更新版本号至3.0.0beta11, 新增dist_strategy.yaml配置文件, 重构命名策略加载逻辑,支持自定义命名策略。 优化命令行参数处理,确保优先使用命令行参数。 修正相关函数签名以适应新逻辑。 * 更正版本号beta0.10 * 1.增加text/plain类型的请求体构造类 2.修正自动生成代码时接口类名的判断逻辑 * py3.8不支持list[dict]写法,改成List * 更新版本号至3.0.0beta11,增强API对象的请求发送和响应处理逻辑,支持流式响应,优化日志记录中间件以区分流式和普通响应,重构相关方法以提高可读性和可维护性。 * 新增中间件注册机制 * 新增中间件注册中心及相关功能,支持中间件的注册、启用、禁用和优先级设置,提供配置文件加载和应用功能,增强中间件管理的灵活性和可扩展性。 * 优化 JsonSchemaParser 中属性名称的处理逻辑,确保生成的模型名称符合规范。 * 更新自动生成的apis.py和models.py文件写入逻辑,确保生成的文件使用UTF-8编码 * 内置中间件添加名字 * 脚手架新增中间件文件夹及配置文件 * 脚手架新增中间件文件夹及配置文件 * 优化类型名称处理逻辑,确保自定义类型名称规范化,增强代码可读性和一致性。 * 优化 JsonSchemaParser 和模型名称处理逻辑,添加名称映射功能,确保引用解析和模型名称规范化,增强代码可读性和一致性。 * 增加jsonschema和middlewares的单元测试 * jsonschema支持openapi 3.1中的const字段,并增加单元测试 * 增强类型映射,支持更多format关键字,补充相关单元测试 * openapi解析优化:完善约束转换,将 JSON Schema 约束,如minLength,minimum等转换为 DataModelField 属性,支持后续的验证和元数据生成。并新增相关单元测试 * 移除models.py中的normalize处理 * normalize重构v1,调整到generate阶段处理 * 回退到 commit:9d3688d79c2884b1073b81e0a2d1210862cc8591 * 重构类名规范化处理逻辑 * mock-server增加登录接口,所有mock接口增加权限校验 * Create LICENSE * update ASCII TEXT and slogan * add MIT LICENSE * 新增aomaker图标和logo,更新progress.html以包含图标链接 * 移除hook_manager.py中的调试打印信息 * 优化normalize_enum_name函数,增强对Unicode字符的支持,添加空值处理和合法性检查,确保生成有效的Python标识符 * 优化类名规范化函数,增强对Unicode字符的支持,处理非法字符和数字开头的情况,确保生成有效的Python类名,并添加相应的调试日志。 * 在测试中将JsonSchemaObject的引用创建方式更新为使用model_validate方法,确保引用的正确性和一致性。 修复 anyOf 或 oneOf 只包含一个非 null 类型和一个 null 类型的时,生成的type_hint,重复生成Optional的问题。 * 修复JsonSchemaParser类中type_hint生成逻辑,移除对Optional的使用,以确保在处理多个非null类型时生成正确的Union类型提示。 * 在JsonSchemaParser类中添加递归深度检查,以防止在处理schema时出现过深递归导致的潜在问题。返回类型为Any以确保稳定性。 * 修复文档描述中的空格问题,更新JsonSchemaParser类中的类型映射,确保required字段使用集合类型以提高性能,优化合并描述逻辑,确保合并后的模型描述不包含空值。同时,更新测试用例以反映新的类型生成逻辑。 * 优化OpenAPIParser类中的响应解析逻辑,增加对响应内容存在性的检查,确保在解析schema时捕获异常并记录错误。同时,添加新的测试用例以验证解析功能的正确性和稳定性。 * 修复接口定义中response字段type_hint为列表嵌套自定义模型时,导入信息不对的问题 * 修复流式响应异常处理的问题 * 更新介绍文档 * 调整介绍文档中的超链接 * 调整介绍文档中的更新日志和LICENSE超链接 * 优化OpenAPIParser类中的描述逻辑,确保在缺少描述时优先使用参数对象的描述,提升解析的准确性和稳定性。 * 优化OpenAPIParser类,增加对参数对象(#/components/parameters )的支持,确保在解析引用参数时能够正确返回对应的参数对象,同时提升代码的可读性和注释的完整性。 * 优化OpenAPIParser类,增强对引用参数的处理逻辑,确保在解析参数时能够正确获取schema的默认值和描述,同时提升代码的可读性和注释的完整性。 * 更新JsonSchemaParser类,新增required字段的集合类型支持,以提高模型注册的性能和准确性。 * 增加parser模块单元测试 * 补充parser模块response解析部分单元测试 * 增加generator模块单元测试 * 新增compat.py模块单元测试 * 增加core/http_client模块单元测试 * 增加对BaseAPIObject传入自定义base_url属性的一致性处理 * 优化当AO无response定义时,跳过响应数据解析 * 修复BaseAPIObject的send简写方法没有return返回值的问题 * 增加api_object模块单元测试 * 增加base_model模块单元测试 * 增加request_builder模块单元测试 * 修复EndpointConfig的route_params默认值为None的问题,改为使用空列表以提高代码的健壮性。同时更新RequestConverter以处理route_params为空的情况。 * 新增converters模块单元测试 * 用例调整 * 新增router模块的单元测试 * 增加middlewares单元测试 * 1.移除base_api模块 2.优化jsonschema校验的报错信息 * 重构测试报告UI * 测试报告UI优化 * 统一测试监控dashboardUI风格 * 打印信息优化 * 移除dataclass * 1.优化整体打印信息 2.移除tabulate库 3.优化allure commandline未安装的异常提示 * 优化脚手架创建打印信息 * 拆分runner模块,调整cli run接口 * 1.sqlite调整为WAL模式,增加超时时间 2.cache表增加upsert方法 * 拆分重组cli.gen_models * readme更新 * 增加runner单元测试用例 * 版本号更新为3.0.0 * openapi默认解析递归深度调整到15 * 移除maker.main调试文件 --------- Co-authored-by: listen <[email protected]>