# Hertz Studio Django 代码生成模块接口文档 - 基础路径: `/api/codegen/` - 统一响应: 使用 `HertzResponse`,结构如下(参考 `hertz_studio_django_utils/responses/HertzResponse.py`) ```json { "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 `(`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` 字符串,模型英文名,例如 `Product` - `app_name` 字符串,Django 应用名称,例如 `hertz_studio_django_product` - `fields` 数组,字段定义列表,每项包含:`name`、`type`、`verbose_name`、`help_text`、`required`、`max_length`、`choices` - `operations` 数组,支持的操作,默认 `['list','create','update','delete']` - `menu_config` 对象,菜单配置:`enabled`、`parent_code`、`prefix`、`sort_order`、`icon` - `generate_app` 布尔,是否生成应用代码,默认 `true` - `generate_menu` 布尔,是否生成菜单配置,默认 `true` - 请求示例(同时生成应用与菜单): ```http POST /api/codegen/simple/generate/ Authorization: Bearer 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 } ``` - 返回示例(成功): ```json { "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" } } ``` - 请求示例(仅生成菜单配置): ```http POST /api/codegen/simple/generate/ Authorization: Bearer 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 } ``` - 返回示例(仅菜单): ```json { "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" } } ``` ## 二、错误响应示例 - 缺少必填参数: ```json {"success": false, "code": 422, "message": "缺少必填参数: fields"} ``` - 请求体格式错误(非JSON): ```json {"success": false, "code": 422, "message": "请求参数格式错误,请使用JSON格式"} ``` - 生成失败(异常信息): ```json {"success": false, "code": 500, "message": "代码生成失败: <错误信息>"} ```