Files
open-gateway-service/docs/sql/01_schema.sql
T

54 lines
2.7 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =====================================================================
-- 开放接口中心 网关库表(T0.9)
-- 库:open_gateway(projman provision 建;本脚本由 T1.7 生产导入,可重复执行)
-- 方言:MySQL
-- =====================================================================
DROP TABLE IF EXISTS open_api_route;
CREATE TABLE open_api_route (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
target_code VARCHAR(32) NOT NULL COMMENT '目标应用 ctx(usermsg/notice/...)',
path_pattern VARCHAR(256) NOT NULL COMMENT 'Ant 风格;匹配剥掉 target 首段后的路径,如 /oapi/message/**',
http_method VARCHAR(8) NOT NULL DEFAULT '*' COMMENT 'GET/POST/PUT/DELETE/*',
visibility VARCHAR(16) NOT NULL DEFAULT 'INTERNAL' COMMENT 'INTERNAL/EXTERNAL',
auth_mode VARCHAR(16) NOT NULL DEFAULT 'SIGNED' COMMENT 'SIGNED/ANON/OPTIONAL',
cache_ttl_seconds INT NOT NULL DEFAULT 0,
cache_scope VARCHAR(16) NOT NULL DEFAULT 'CALLER' COMMENT 'CALLER/GLOBAL',
rate_limit_qps INT NOT NULL DEFAULT 0 COMMENT '0=不限',
timeout_ms INT NOT NULL DEFAULT 30000,
request_body_limit_mb INT NOT NULL DEFAULT 10,
enabled TINYINT NOT NULL DEFAULT 1,
remark VARCHAR(256),
gmt_create DATETIME NOT NULL,
gmt_modified DATETIME NOT NULL,
UNIQUE KEY uk_route (target_code, path_pattern, http_method)
);
DROP TABLE IF EXISTS open_api_log;
CREATE TABLE open_api_log (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
ts DATETIME(3) NOT NULL,
caller_app_key VARCHAR(64) COMMENT 'ANON 记 anonymous;401 且无 appKey 记 NULL',
target_code VARCHAR(32) NOT NULL,
method VARCHAR(8) NOT NULL,
path VARCHAR(256) NOT NULL COMMENT '剥掉 target 首段后的路径(与注册表 path_pattern 同一坐标系)',
status INT NOT NULL COMMENT '网关出口 HTTP 状态',
backend_code INT COMMENT '提供方业务 code(响应为 JSON 信封时尽力解析,否则 NULL)',
cost_ms INT NOT NULL,
KEY idx_ts (ts),
KEY idx_caller_ts (caller_app_key, ts),
KEY idx_target_ts (target_code, ts)
);
DROP TABLE IF EXISTS open_api_stat_daily;
CREATE TABLE open_api_stat_daily (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
stat_date DATE NOT NULL,
target_code VARCHAR(32) NOT NULL,
caller_app_key VARCHAR(64) NOT NULL,
total INT NOT NULL DEFAULT 0,
err_total INT NOT NULL DEFAULT 0,
avg_cost_ms INT NOT NULL DEFAULT 0,
UNIQUE KEY uk_stat (stat_date, target_code, caller_app_key)
);