语法: #app=demo
关键字 | 说明 |
app | 通过 #app=demo 给应用命名 |
语法: include('api_user.niuhe')
关键字 | 说明 |
include | 通过 include 引入定义的其他文件 |
语法: class Lang(ConstGroup[,desc='', depr=True,ver='1.1'])
关键字 | 说明 | 关键字 | 说明 |
class | 常量组开始标记 | ConstGroup | 将结构标记为常量组 |
desc | 常量组描述 | depr | 常量组标记为废弃 |
deprecated | 同 depr 将常量组标记为废弃 | ver | 声明版本 |
语法 ZH_CN=Item(1, "中文")
或 ZH_CN=Item(value=1, desc="中文", depr=True, ver='1.1')
关键字 | 说明 | 关键字 | 说明 |
Item | 常量标记 | ConstGroup | 将结构标记为常量组 |
value | 指定常量的值 | desc | 常量组描述 |
depr | 常量组标记为废弃 | deprecated | 同 depr 将常量组标记为废弃 |
ver | 声明版本 | name | 未定义常量名时重命名 |
语法: class User([desc='用户', depr=True, ver='1.1', used=True]
):
关键字 | 说明 | 关键字 | 说明 |
class | 类开始标记 | Message | 将结构标记为类,可不写 |
desc | 常量组描述, 也可写为下一行的注释 | depr | 常量组标记为废弃 |
deprecated | 同 depr 将常量组标记为废弃 | ver | 声明版本 |
used | 将类标记为已被引用,确保在代码中会生成本类相关代码 | | |
语法: name=label.type(attrs)
例子: avatar = optional.String(desc='头像', depr=True, ver='1.1')
关键字 | 说明 | 关键字 | 说明 |
required | 作为请求参数时本参数必填 | optional | 作为请求结构时本参数可选 |
repeated | 表示生成的成员为数组 | mapping | 表示生成的成员为 map 形式, 内部可填充任意值 |
关键字 | 说明 | 关键字 | 说明 |
Integer | 字段类型为 int | Long | 字段类型为 int64 |
Float | 字段类型为 float64 | Decimal | 字段类型为 float64 |
String | 字段类型为 string | Boolean | 字段类型为 boolean |
Enum | 字段类型为整数常量 | StringEnum | 字段类型为字符串常量 |
Message | 字段类型为类 | File | 字段类型文件, 读取 header 中对应的文件 |
Any | 字段类型map[string]any | | |
关键字 | 说明 | 关键字 | 说明 |
desc | 字段描述 | depr | 常量组标记为废弃 |
deprecated | 同 depr 将常量组标记为废弃 | ver | 声明版本 |
json | 重命令json 名 | omit | 值为空序列化时丢弃本字段 |
demo | 字段示例值 | cls | 类型为Message 时指定具体的类 |
group | 类型为 Enum/StringEnum 时指定常量组枚举 | reg | type 为 String 时验证其正则表达式 |
minlen | type 为 String 时验证其最小长度 | maxlen | type 为 String 时验证其最小长度 |
minnum | type 数字时验证其最小值 | maxnum | type 数字时验证其最大值 |
format | 指定其对应结构的 Parse 方法格式,如 format="2006-01-02" | | |
attrs
中 reg
, minlen
, maxlen
, minnum
, maxnum
的属性请参考 zpform struct 定义
示例
with services():
GET('某天数据', '/api/stat/day/',StatDayReq, StatDayRsp, author='xxx', status=tested)
RPC('统计充值情况', get='/api/stat/charge/',author='xxx', status=tested).args(
team_id = optional.Long(desc='id'),
).returns(
total = required.Message(cls=StatChargeItem, desc='总充值数据'),
).codes(
comm.LangEnum.ZH_CN, Item(100, '权限错误'),Item(101),
)
关键字 | 说明 | 关键字 | 说明 |
with | 路由开始标记 | services | 路由开始标记 |
POST | http 请求为 POST | GET | http 请求为GET |
PUT | http 请求为PUT | PATCH | http 请求为PATCH |
DELETE | http 请求为DELETE | HEAD | http 请求为HEAD |
OPTIONS | http 请求为OPTIONS | RPC | RPC 方式定义路由 |
author | 指定接口责任人/作者 | status | 指定接口状态 |
关键字 | 说明 | 关键字 | 说明 |
url | 指定方法为GET 和POST | args | 定义请求参数 |
returns | 定义返回参数 | codes | 定义约束错误码集合 |
代码示例
class Config(alias="系统配置", mode='api', niuhe=True, dao=True, service=True, model=True, vite=True):
'''系统配置表'''
name = required.String(desc='配置名称', index=True, search=True, len=255, notnull=True)
关键字 | 说明 | 关键字 | 说明 |
class | 开始标记 | alias | 表文字说明 |
mode | 定义 CURD url 中的 mode 字段 | niuhe | 在生成对应的 niuhe 是否覆盖已存在的 niuhe 文件内容 |
dao | 在生成对应的 dao 是否覆盖已存在的 dao 文件内容 | service | 在生成对应的 service 是否覆盖已存在的 service 文件内容 |
model | 在生成对应的 model 是否覆盖已存在的 model 文件内容 | vite | 在生成对应的 vite 是否覆盖已存在的 vite 文件内容, 需在 .config.json5 中 langs 中添加 "vite"` |
语法: name=label.type(attrs)
label
和 type
部分同类中的字段, 这里仅列出 attrs
部分
关键字 | 说明 | 关键字 | 说明 |
desc | 字段描述 | group | 类型为 Enum/StringEnum 时指定常量组枚举 |
json | 重命令json 名 | omit | 值为空序列化时丢弃本字段 |
demo | 字段示例值 | ver | 字段版本号 |
index | 将字段标记为索引 | len | 指定字段长度 |
notnull | 字段标记为非空 | date | 字段类型为 time.Time |
default | 指定字段默认值 | search | 字段是否出现在分页搜索参数中 |