refactor: 简化schema结构,更新AGENTS.md
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
import type { DynamicExpression, RestRequest } from '../core';
|
||||
|
||||
/**
|
||||
* 数据变更核心配置引擎
|
||||
*
|
||||
* 【架构定位】:
|
||||
*
|
||||
* 这是一个多态联合类型 (Polymorphism Union Type)。
|
||||
* 它决定了当前这个 `Mutation` 到底是通过什么“物理手段”去修改服务端状态的。
|
||||
*
|
||||
* 核心架构差异(与 QueryConfig 的对比):
|
||||
*
|
||||
* 坚决不允许存在 `MutationConfigByStatic`!
|
||||
* 因为修改一个内存里的死数据(Mock)是没有任何业务意义的,写操作必定伴随着网络 I/O 或数据库操作。
|
||||
*/
|
||||
export type MutationConfig =
|
||||
| MutationConfigByRest
|
||||
| MutationConfigByGraphql
|
||||
| MutationConfigByDatabase
|
||||
| MutationConfigByCode;
|
||||
|
||||
/**
|
||||
* 1. RESTful 协议变更配置 (REST API)
|
||||
*
|
||||
* 占据了低代码数据变更 90% 以上场景的主力网络通信配置。
|
||||
*/
|
||||
export interface MutationConfigByRest {
|
||||
type: 'rest';
|
||||
/**
|
||||
* HTTP 请求方法
|
||||
*
|
||||
* 引擎防呆指引:
|
||||
* 既然是写操作(Mutation),绝大部分符合 REST 语义的设计必须是以下四种动词。
|
||||
* 坚决不要在此处允许出现 GET 请求!
|
||||
*/
|
||||
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
||||
/**
|
||||
* 请求体配置
|
||||
*
|
||||
* 极其关键的双模逃生舱设计 (Dual-Mode Design):
|
||||
* 它引入了定义在 `core/rest-request.ts` 中的 `RestRequest` 类型
|
||||
* (`RestRequestByFixed | RestRequestByCode`)。
|
||||
*
|
||||
* 这是低代码平台处理极度复杂的表单提交数据组装(如从多个 Variables 里提取数据并加密)的终极战场。
|
||||
*/
|
||||
request: RestRequest;
|
||||
/**
|
||||
* 接口超时时间 (毫秒 ms)
|
||||
*
|
||||
* 变更操作(如上传大文件或复杂计算)往往比查询需要更长的超时容忍度。
|
||||
* 如果启用,引擎应使用全局 DataSource 配置的超时,或默认的浏览器超时。
|
||||
*/
|
||||
timeout: {
|
||||
enabled: boolean;
|
||||
duration: number;
|
||||
};
|
||||
}
|
||||
|
||||
// TODO: GraphQL 变更配置,暂不实现
|
||||
export interface MutationConfigByGraphql {
|
||||
type: 'graphql';
|
||||
}
|
||||
|
||||
// TODO: 数据库变更配置,暂不实现
|
||||
export interface MutationConfigByDatabase {
|
||||
type: 'database';
|
||||
}
|
||||
|
||||
// TODO: 代码变更配置,暂不实现
|
||||
export interface MutationConfigByCode extends DynamicExpression {}
|
||||
Reference in New Issue
Block a user