Files
hertz_django/docs/API接口文档/代码生成模块接口文档.md
2025-11-17 16:39:30 +08:00

4.5 KiB
Raw Blame History

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_generatehertz_studio_django_codegen/views/simple_generator_views.py:136
  • 请求体: application/json
  • 字段:
    • module_name 字符串,模块中文名,例如 产品管理
    • model_name 字符串,模型英文名,例如 Product
    • app_name 字符串Django 应用名称,例如 hertz_studio_django_product
    • fields 数组,字段定义列表,每项包含:nametypeverbose_namehelp_textrequiredmax_lengthchoices
    • operations 数组,支持的操作,默认 ['list','create','update','delete']
    • menu_config 对象,菜单配置:enabledparent_codeprefixsort_ordericon
    • generate_app 布尔,是否生成应用代码,默认 true
    • generate_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": "代码生成失败: <错误信息>"}