言枢:Web 应用框架
使用言枢 1.0 的路由、中间件、言据协商、会话、CSRF、静态文件和无端口测试构建服务。
言枢(yanxu-web)1.0.0 是言序 Web 应用框架。它组合言讯协议对象、言页安全节点、
言据数据交换和言访测试传输;所有状态都由显式应用对象持有,不依赖魔法全局变量。
安装
最低言序为 1.1.12:
yanbao add web --version '^1.0'
yanbao install言包会固定言据 1.2、言页 1.0、言讯 1.0 和言访 1.0。开发服务器需要回环监听权限; 模板和静态文件另受应用文件权限约束。
创建应用
引「包:web」为 言枢;
法 首页(上下文) 则
归 言枢.协商响应(上下文,{
「服务」:「言枢」,
「文章」:上下文.反向(「文章详情」,{「id」:「first」})
});
终
法 文章(上下文) 则
归 言枢.JSON响应({「id」:上下文.参数值(「id」)});
终
定 应用 为 言枢.创建应用(
言枢.配置()
.设应用名(「我的服务」)
.设最大请求正文字节(1048576)
.设最大响应正文字节(2097152)
);
应用.取(「/」,首页);
应用.命名取(「/posts/:id」,「文章详情」,文章);
定 响应 为 言枢.测试客户端(应用).取(「/posts/first」);路径支持静态段、:名称和末尾*名称。命名路由与路由组生成反向 URL;重复方法/模式
会失败,不会覆盖旧处理器。中间件按注册顺序进入、逆序退出,404、405 与统一错误边界
可以分别替换。
JSON、言据与协商
法 创建言据(上下文) 则
定 输入:典 为 上下文.言据正文();
归 言枢.言据值响应(输入);
终言据正文只接受言据媒体类型并使用受限解析;言据值响应执行规范序列化。
协商响应解析Accept质量和特异度,在 JSON 与言据之间选择并写入Vary: accept。
会话与 CSRF
会话存储是显式协议或三个回调的适配器,不隐式打开数据库:
定 会话项 为 言枢.会话配置()
.设Cookie名(「__Host-yanxu-session」)
.设最大秒(3600)
.设安全(真)
.设仅HTTP(真)
.设同站(「Lax」);
应用.使用(言枢.会话中间件(会话项,存储));CSRF 中间件对非安全方法检查Sec-Fetch-Site、Origin/Referer 和双提交令牌。它不能替代
登录、授权或 HTTPS。生产会话存储必须自行提供并发控制、过期清理、容量和可观测性。
静态文件与 OpenAPI
静态配置支持路径隔离、隐藏文件策略、媒体类型、弱 ETag、Last-Modified、条件请求和 单一字节范围;多范围不会伪装成完整 multipart 响应。
OpenAPI 只收录通过接口路由系列显式登记的操作。框架负责稳定操作标识、隔离快照、
预算和 HTTP 输出;提供器负责生成 OpenAPI 3.1,不反射普通处理器源码。
无端口测试
引「包:web/言访测试」为 言访测试;
定 客户端 为 言访测试.客户端(应用);
定 响应 为 客户端.发文(「/profiles」)
.言据正文({「姓名」:「子衿」})
.发送()
.确保成功();适配器保留查询、首部、Cookie、字节正文、受控重定向、重复Set-Cookie和 HEAD 语义,
但不模拟 DNS、TLS、连接失败或真实网络超时。
安全与已知限制
言枢提供正文预算、安全首部、路径隔离、CSRF 和错误隐藏边界,应用仍必须实现认证、 授权、速率限制、审计和敏感数据脱敏。
内建服务器串行接受连接、每连接处理一个 HTTP/1.1 请求并关闭,不提供 TLS、HTTP/2/3、 长连接工作池、流式上传、生产代理信任或优雅重启。生产环境应使用成熟前置服务器。
仓库与完整 API:yanxulang/yanxu-web, 1.0.0 Release。