4.5 KiB
4.5 KiB
Hertz Studio Django 代码生成模块接口文档
- 基础路径:
/api/codegen/ - 统一响应: 使用
HertzResponse,结构如下(参考hertz_studio_django_utils/responses/HertzResponse.py){ "success": true, "code": 200, "message": "操作成功", "data": {} } - 路由挂载: 项目主路由中已通过
path('api/codegen/', include(('hertz_studio_django_codegen.urls', 'hertz_studio_django_codegen'), namespace='codegen'))挂载(hertz_server_django/urls.py:51)。 - 认证说明: 接口需要登录,需在请求头携带
Authorization: Bearer <token>(hertz_studio_django_codegen/views/simple_generator_views.py:136)。
一、简化代码生成
生成应用代码与菜单配置
- 方法:
POST - 路径:
/api/codegen/simple/generate/ - 认证: 需要登录
- 实现:
simple_code_generate(hertz_studio_django_codegen/views/simple_generator_views.py:136) - 请求体:
application/json - 字段:
module_name字符串,模块中文名,例如产品管理model_name字符串,模型英文名,例如Productapp_name字符串,Django 应用名称,例如hertz_studio_django_productfields数组,字段定义列表,每项包含:name、type、verbose_name、help_text、required、max_length、choicesoperations数组,支持的操作,默认['list','create','update','delete']menu_config对象,菜单配置:enabled、parent_code、prefix、sort_order、icongenerate_app布尔,是否生成应用代码,默认truegenerate_menu布尔,是否生成菜单配置,默认true
- 请求示例(同时生成应用与菜单):
POST /api/codegen/simple/generate/ Authorization: Bearer <token> Content-Type: application/json { "module_name": "产品管理", "model_name": "Product", "app_name": "hertz_studio_django_product", "fields": [ {"name": "name", "type": "CharField", "verbose_name": "产品名称", "required": true, "max_length": 100}, {"name": "price", "type": "FloatField", "verbose_name": "价格", "required": true}, {"name": "status", "type": "IntegerField", "verbose_name": "状态", "choices": [[0,"下线"],[1,"上线"]]} ], "operations": ["list","create","update","delete"], "menu_config": {"enabled": true, "parent_code": "system", "prefix": "product", "sort_order": 10, "icon": "box"}, "generate_app": true, "generate_menu": true } - 返回示例(成功):
{ "success": true, "code": 200, "message": "成功生成产品管理模块代码和菜单配置", "data": { "generated_files": { "hertz_studio_django_product/models.py": "...", "hertz_studio_django_product/serializers.py": "...", "hertz_studio_django_product/views.py": "...", "hertz_studio_django_product/urls.py": "...", "hertz_studio_django_product/apps.py": "..." }, "menu_configs": [ {"code": "product", "name": "产品管理", "type": "menu", "sort_order": 10}, {"code": "product:list", "name": "产品列表", "type": "permission", "sort_order": 11} ], "app_path": "hertz_studio_django_product", "menu_file": "d:/All_template/yolo/pending_menus_product.py" } } - 请求示例(仅生成菜单配置):
POST /api/codegen/simple/generate/ Authorization: Bearer <token> Content-Type: application/json { "module_name": "库存管理", "model_name": "Inventory", "app_name": "hertz_studio_django_inventory", "fields": [], "operations": ["list"], "menu_config": {"enabled": true, "parent_code": "system", "prefix": "inventory"}, "generate_app": false, "generate_menu": true } - 返回示例(仅菜单):
{ "success": true, "code": 200, "message": "成功生成库存管理模块代码和菜单配置", "data": { "generated_files": {}, "menu_configs": [{"code": "inventory", "name": "库存管理", "type": "menu"}], "app_path": "", "menu_file": "d:/All_template/yolo/pending_menus_inventory.py" } }
二、错误响应示例
- 缺少必填参数:
{"success": false, "code": 422, "message": "缺少必填参数: fields"} - 请求体格式错误(非JSON):
{"success": false, "code": 422, "message": "请求参数格式错误,请使用JSON格式"} - 生成失败(异常信息):
{"success": false, "code": 500, "message": "代码生成失败: <错误信息>"}