diff --git a/knowledge.md b/knowledge.md index b23cfe5..80b84d4 100644 --- a/knowledge.md +++ b/knowledge.md @@ -1289,8 +1289,8 @@ class CreateUserBto { //对应实体user - **自定义RPC和手写方法关系:** 两者都可手动实现服务层方法。区别:需要被其他模块订阅用自定义RPC;只是API私有调用不需要外部开放用手写方法 - **关键配置:** 类名(驼峰,首字母大写,以Service结尾)、是否公开、方法名(驼峰,首字母小写)、请求参数、返回值。分页查询参数为Qto类型时,Qto已包含from、size、scrollId属性,无需额外参数 - **TOCO中RPC存储:** RPC在TOCO中只存储方法签名,不存储执行逻辑。了解实现逻辑需阅读RPC对应代码 -- **参数类型:** RPC参数**只能**为QTO、BTO、Enum、EO、基本类型,可为单值或列表。对象类型优先用QTO、BTO,**禁用**VO和自定义结构如Object -- **返回值类型:** RPC返回值**只能**为DTO、Enum、Eo、基本类型,可为单值或列表,**禁用**VO、QTO、BTO、自定义结构如Object。对象类型优先用DTO +- **参数类型:** RPC参数**只能**为QTO、BTO、Enum、EO、基本类型,可为单值或列表。对象类型优先用QTO、BTO,**禁用**VO、Map、和自定义结构如Object +- **返回值类型:** RPC返回值**只能**为DTO、Enum、Eo、基本类型,可为单值或列表,**禁用**VO、QTO、BTO、Map、自定义结构如Object。对象类型优先用DTO - **TOCO中json结构:** TOCO中DTO用json表示,示例: ```json { @@ -1319,8 +1319,8 @@ class CreateUserBto { //对应实体user - **创建方式:** 通过TOCO创建,需指定参数和返回值 - **存储特点:** TOCO只存储URI和方法签名,不存储执行逻辑。了解实现需阅读对应代码 - **关键配置:** uri(/api/${moduleName}/xxx,如/api/user/create,全局唯一)、类名(以Controller结尾)、方法名(驼峰小写)、请求参数、返回值。分页查询参数为Qto时,已包含from、size、scrollId属性,无需额外参数 -- **参数类型:** 只能为QTO、BTO、EO、Enum、基本类型,可为单值或列表。对象类型优先用QTO、BTO。禁用DTO和自定义结构 -- **返回值类型:** 脚手架自动包装返回值(code、message、data)。只能为VO、Enum、EO、基本类型,可为单值或列表。禁用DTO、QTO、BTO、自定义结构。对象类型优先用VO +- **参数类型:** 只能为QTO、BTO、EO、Enum、基本类型,可为单值或列表。对象类型优先用QTO、BTO。禁用DTO、Map和自定义结构 +- **返回值类型:** 脚手架自动包装返回值(code、message、data)。只能为VO、Enum、EO、基本类型,可为单值或列表。禁用DTO、QTO、BTO、Map、自定义结构。对象类型优先用VO - **json结构:** API用json表示,示例: ```json { @@ -1705,6 +1705,7 @@ TOCO严格遵照分层规则,必须严格遵守,否则会产生严重后果 - 本节描述参数选择的**优先级原则**,非绝对限制 - API参数绝对限制见2.14章节 - "优先使用QTO/BTO"指在满足规范前提下,根据场景选择最合适的参数类型 +- TOCO不支持Map类型 #### 4.2 并发数据保护最佳实践: