更新 llms-full.txt
This commit is contained in:
@@ -1066,8 +1066,8 @@ DateTime endTime; //会议结束时间
|
|||||||
- **优先复用:** 当用户需要创建一个RPC时,如果用户有明确要求创建的方式,则按照用户的要求来创建。如果没有明确要求,则通常先判断是否可以通过创建读方案、写方案、DTO来使TOCO自动创建出对应的RPC,最后再考虑通过TOCO创建自定义RPC
|
- **优先复用:** 当用户需要创建一个RPC时,如果用户有明确要求创建的方式,则按照用户的要求来创建。如果没有明确要求,则通常先判断是否可以通过创建读方案、写方案、DTO来使TOCO自动创建出对应的RPC,最后再考虑通过TOCO创建自定义RPC
|
||||||
- **自定义RPC和代码中手写方法的关系:** 二者都可以通过手动的方式实现一个服务层的方法,应用场景的区别在于:如果一个方法需要被其他模块订阅,则通常使用自定义RPC;如果一个方法只是某个API私有调用,不需要给外部模块开放,则可以使用代码手写方法
|
- **自定义RPC和代码中手写方法的关系:** 二者都可以通过手动的方式实现一个服务层的方法,应用场景的区别在于:如果一个方法需要被其他模块订阅,则通常使用自定义RPC;如果一个方法只是某个API私有调用,不需要给外部模块开放,则可以使用代码手写方法
|
||||||
- **关键配置:** 类名(驼峰,首字母大写,以Service结尾)、是否公开、方法名(驼峰,首字母小写)、请求参数、返回值
|
- **关键配置:** 类名(驼峰,首字母大写,以Service结尾)、是否公开、方法名(驼峰,首字母小写)、请求参数、返回值
|
||||||
- **参数类型:** RPC的参数**只能**为QTO、BTO、Enum、基本类型,可为单值或列表。注意如果是对象类型,则优先使用QTO、BTO作为参数,**禁止使用**VO、EO和自定义结构如Object
|
- **参数类型:** RPC的参数**只能**为QTO、BTO、Enum、基本类型,可为单值或列表。注意如果是对象类型,则优先使用QTO、BTO作为参数,**禁止使用**VO和自定义结构如Object
|
||||||
- **返回值类型:** RPC的返回值**只能**为DTO、Enum、基本类型,可为单值或列表,**禁止使用**VO、QTO、BTO、EO、自定义结构如Object作为返回值。注意如果是对象类型,则优先使用DTO作为返回值
|
- **返回值类型:** RPC的返回值**只能**为DTO、Enum、基本类型,可为单值或列表,**禁止使用**VO、QTO、BTO、自定义结构如Object作为返回值。注意如果是对象类型,则优先使用DTO作为返回值
|
||||||
- **TOCO中json结构描述:** 在TOCO中,DTO使用一个json结构表示,示例如下:
|
- **TOCO中json结构描述:** 在TOCO中,DTO使用一个json结构表示,示例如下:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -1096,8 +1096,8 @@ requestParams为请求参数列表,response为返回结构,requestParams中
|
|||||||
- **定义与用途:** 在TOCO中,API用于定义对外暴露的HTTP接口
|
- **定义与用途:** 在TOCO中,API用于定义对外暴露的HTTP接口
|
||||||
- **如何创建/生成:** API一般为通过TOCO创建,需指定具体的参数和返回值等
|
- **如何创建/生成:** API一般为通过TOCO创建,需指定具体的参数和返回值等
|
||||||
- **关键配置:** uri(加粗展示,一般为/api/${moduleName}/xxx,如/api/user/create,全局唯一。如果用户有特殊命名规则的话以用户要求为准)、类名(以Controller结尾)、方法名(驼峰,首字母小写)、请求参数、返回值
|
- **关键配置:** uri(加粗展示,一般为/api/${moduleName}/xxx,如/api/user/create,全局唯一。如果用户有特殊命名规则的话以用户要求为准)、类名(以Controller结尾)、方法名(驼峰,首字母小写)、请求参数、返回值
|
||||||
- **参数类型:** API的参数**只能**为QTO、BTO、Enum、基本类型,可为单值或列表。注意如果是对象类型,则优先使用QTO、BTO作为参数。**禁止使用**DTO、EO和自定义结构如Object
|
- **参数类型:** API的参数**只能**为QTO、BTO、Enum、基本类型,可为单值或列表。注意如果是对象类型,则优先使用QTO、BTO作为参数。**禁止使用**DTO和自定义结构如Object
|
||||||
- **返回值类型:** TOCO的API运行在自己的Java脚手架中,脚手架会自动对API的返回值做一层对象包装(code、message、data)。所以在TOCO中,API的返回值无需考虑返回码和错误信息,只需考虑返回的数据本身。TOCO中API的返回值**只能**为VO、Enum、基本类型,可为单值或列表,**禁止使用**DTO、QTO、BTO、EO、自定义结构如Object作为返回值。注意如果是对象类型,则优先使用VO作为返回值。
|
- **返回值类型:** TOCO的API运行在自己的Java脚手架中,脚手架会自动对API的返回值做一层对象包装(code、message、data)。所以在TOCO中,API的返回值无需考虑返回码和错误信息,只需考虑返回的数据本身。TOCO中API的返回值**只能**为VO、Enum、基本类型,可为单值或列表,**禁止使用**DTO、QTO、BTO、自定义结构如Object作为返回值。注意如果是对象类型,则优先使用VO作为返回值。
|
||||||
- **TOCO中json结构描述:** 在TOCO中,API使用一个json结构表示,示例如下:
|
- **TOCO中json结构描述:** 在TOCO中,API使用一个json结构表示,示例如下:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -1318,7 +1318,11 @@ requestParams为请求参数列表,response为返回结构,requestParams中
|
|||||||
#### 4.2 为所有的写场景都创建写方案(Create WritePlan For All Write Scenarios):
|
#### 4.2 为所有的写场景都创建写方案(Create WritePlan For All Write Scenarios):
|
||||||
通常在分析业务需求时,需要分析出**所有**写数据的场景,并按照**聚合维度**进行分组,然后针对每个写场景**都需要**创建对应的写方案,不能有遗漏。写方案可以按需根据聚合进行合并。
|
通常在分析业务需求时,需要分析出**所有**写数据的场景,并按照**聚合维度**进行分组,然后针对每个写场景**都需要**创建对应的写方案,不能有遗漏。写方案可以按需根据聚合进行合并。
|
||||||
#### 4.3 接口参数类型和返回值选择(Interface Parameter & Return Type Definition):
|
#### 4.3 接口参数类型和返回值选择(Interface Parameter & Return Type Definition):
|
||||||
在做TOCO接口(API、RPC)设计时,通常会先判断接口的主要功能是读数据库或写数据库,并分析相关的读写方案以及对应的QTO和BTO。如果是读场景,则参数会**优先使**用相关的QTO;如果是写场景,则参数会**优先**使用相关的BTO,如果BTO和QTO无法满足要求,则可以再增加基本类型或Enum、EO等类型参数。参数类型选择时必须遵循以下要求:a.DTO、VO不能作为参数类型;b.QTO、BTO不能作为返回值类型
|
在做TOCO接口(API、RPC)设计时,通常会先判断接口的主要功能是读数据库或写数据库,并分析相关的读写方案以及对应的QTO和BTO。如果是读场景,则参数会**优先使**用相关的QTO;如果是写场景,则参数会**优先**使用相关的BTO,如果BTO和QTO无法满足要求,则可以再增加基本类型或Enum、EO等类型参数。参数类型选择时必须遵循以下要求:a.DTO、VO不能作为参数类型;b.QTO、BTO不能作为返回值类型。
|
||||||
|
**重要说明:**
|
||||||
|
- 本章节描述的是参数选择的**优先级原则**,不是绝对限制
|
||||||
|
- API参数的绝对限制请参考2.14章节
|
||||||
|
- "优先使用QTO/BTO"意思是在满足规范的前提下,根据场景选择最合适的参数类型
|
||||||
|
|
||||||
### 5. 本地代码阅读和编写指南
|
### 5. 本地代码阅读和编写指南
|
||||||
#### 5.1 代码阅读
|
#### 5.1 代码阅读
|
||||||
|
|||||||
Reference in New Issue
Block a user