Files
go-omni/examples/modules/README.md

1.7 KiB
Raw Permalink Blame History

基础模块组合示例

在仓库根目录执行:

go run ./examples/modules

默认监听 127.0.0.1:8080,使用仅限开发的 Bearer dev-token。 默认读取 examples/modules/config.yaml,也可用 -config 选择一个其他文件。文件显式引用了 GO_OMNI_TRANSPORT,设置为 native 可切换自研网络层;TLS 在文件的 tls.certFile / tls.keyFile 中配置。此示例直接加载框架 Config,没有生成项目的 server 外层。

curl -H 'Authorization: Bearer dev-token' http://127.0.0.1:8080/api/catalog
curl -H 'Authorization: Bearer dev-token' -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: report-1' -d '{"name":"report"}' http://127.0.0.1:8080/api/jobs
curl -H 'Authorization: Bearer dev-token' http://127.0.0.1:8080/api/jobs

catalog 缓存 30 秒;可通过启动环境变量 GO_OMNI_DEMO_UPSTREAM 指定可信 JSON 上游, 演示 HTTP 连接池、请求 ID 传递与合并回源。URL 来自服务配置,不接受请求参数传入。

jobs 展示固定 worker、队列、结构化日志与状态查询;相同 Idempotency-Key 和请求内容重放 第一次 202 响应,内容不同返回 409。每分钟的统计任务演示间隔调度。退出先排空任务,再关闭 HTTP 客户端和缓存。这个示例的任务、缓存和幂等记录均保存在进程内。

组合测试通过真实 TLS 连接覆盖 nethttp、native 和实验 HTTP/2,检查缓存回源次数、 幂等重放、认证不可被重放绕过、任务只提交一次与关闭流程:

go test -race ./examples/modules

完整 API、默认上限和适用范围见 业务基础模块。