生态Web 与网络

言枢: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。