上传规范文档
This commit is contained in:
123
docs/API接口文档/代码生成模块接口文档.md
Normal file
123
docs/API接口文档/代码生成模块接口文档.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# 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 <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` 字符串,模型英文名,例如 `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 <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
|
||||
}
|
||||
```
|
||||
- 返回示例(成功):
|
||||
```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 <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
|
||||
}
|
||||
```
|
||||
- 返回示例(仅菜单):
|
||||
```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": "代码生成失败: <错误信息>"}
|
||||
```
|
||||
Reference in New Issue
Block a user