courier

module
v0.0.0-...-7951d2a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2026 License: MIT

README

courier

GoDoc Widget

courier 是一个 Go 服务框架基础库,围绕类型化 operator、HTTP 承载、OpenAPI 描述生成、校验、错误表达和 client 调用提供可复用能力。

仓库同时包含核心库实现、开发期生成器、文档和可运行示例,适合作为服务框架底座或上层业务框架的依赖。

快速开始

just go test  # 运行测试
just example serve  # 启动示例服务

职责与边界

仓库导览

  • pkg/:核心公共库,包含 courier 抽象、HTTP 承载、OpenAPI、校验、状态错误与表达式等能力。
  • devpkg/:开发期生成器与辅助包,用于支撑 operator、client、injectable 等代码生成。
  • tool/internal/cmd/gen:仓库内统一使用的 go tool gen 入口。
  • internal/example/:仓库内示例实现,展示契约层、endpoint 层、routes 组装层和注入式 service 的推荐分层。
  • .agents/skills/courier-guideline/:面向 agent 的 courier 使用手册,说明契约定义、routes 组装、client 调用、校验与生成标签等推荐用法。

文档导航

最小入口

Directories

Path Synopsis
devpkg
clientgen
Package clientgen 根据 OpenAPI 文档生成 courier 客户端操作类型与相关数据类型。
Package clientgen 根据 OpenAPI 文档生成 courier 客户端操作类型与相关数据类型。
injectablegen
Package injectablegen 为可注入类型生成上下文注入与初始化辅助代码。
Package injectablegen 为可注入类型生成上下文注入与初始化辅助代码。
operatorgen
Package operatorgen 为 courier operator 生成路由注册与响应描述辅助代码。
Package operatorgen 为 courier operator 生成路由注册与响应描述辅助代码。
uintstrgen
Package uintstrgen 为无符号整数别名类型生成文本编解码与字符串表示方法。
Package uintstrgen 为无符号整数别名类型生成文本编解码与字符串表示方法。
internal
example/cmd/example command
Package main 提供 courier 示例服务的启动入口。
Package main 提供 courier 示例服务的启动入口。
example/cmd/example/routes
Package routes 组装示例服务的顶层路由树。
Package routes 组装示例服务的顶层路由树。
example/cmd/example/routes/org/v1
+gengo:operator:register=R +gengo:runtimedoc=false
+gengo:operator:register=R +gengo:runtimedoc=false
example/cmd/example/routes/store/v1
+gengo:operator:register=R +gengo:runtimedoc=false
+gengo:operator:register=R +gengo:runtimedoc=false
example/domain/org/service
Package service 定义示例组织域的服务接口,并作为路由层与具体实现之间的注入边界。
Package service 定义示例组织域的服务接口,并作为路由层与具体实现之间的注入边界。
example/domain/org/service/mem
Package mem 提供示例组织域服务的内存实现。
Package mem 提供示例组织域服务的内存实现。
example/domain/store/service
Package service 定义示例制品仓库域的服务接口,并作为路由层与具体实现之间的注入边界。
Package service 定义示例制品仓库域的服务接口,并作为路由层与具体实现之间的注入边界。
example/domain/store/service/mem
Package mem 提供示例制品仓库域服务的内存实现。
Package mem 提供示例制品仓库域服务的内存实现。
example/pkg/apis/meta/v1
Package v1 定义示例服务通用元数据契约, 包括列表结构与分页参数等可复用对象。
Package v1 定义示例服务通用元数据契约, 包括列表结构与分页参数等可复用对象。
example/pkg/apis/org/v1
Package v1 定义组织域的稳定对象契约, 包括组织对象、请求变体、枚举类型与业务错误。
Package v1 定义组织域的稳定对象契约, 包括组织对象、请求变体、枚举类型与业务错误。
example/pkg/apis/store/v1
Package v1 定义制品仓库域的稳定对象契约, 包括命名空间、blob/manifest 描述与相关业务错误。
Package v1 定义制品仓库域的稳定对象契约, 包括命名空间、blob/manifest 描述与相关业务错误。
example/pkg/endpoints/org/v1
Package v1 定义组织域的调用面契约, 包括组织资源的创建、查询、列表、更新与删除接口。
Package v1 定义组织域的调用面契约, 包括组织资源的创建、查询、列表、更新与删除接口。
example/pkg/endpoints/store/v1
Package v1 定义制品仓库域的调用面契约, 包括 blob 上传/读取/删除 与 manifest 写入/读取/删除接口。
Package v1 定义制品仓库域的调用面契约, 包括 blob 上传/读取/删除 与 manifest 写入/读取/删除接口。
httprequest
Package httprequest 提供对 `net/http.Request` 的轻量抽象与辅助适配。
Package httprequest 提供对 `net/http.Request` 的轻量抽象与辅助适配。
jsonflags
Package jsonflags 解析并缓存结构体字段上的 JSON 风格标签信息。
Package jsonflags 解析并缓存结构体字段上的 JSON 风格标签信息。
pathpattern
Package pathpattern 提供路径模板解析、匹配与路由树组织能力。
Package pathpattern 提供路径模板解析、匹配与路由树组织能力。
request
Package request 根据 courier 路由与 operator 元数据构建可执行的 HTTP 路由处理器。
Package request 根据 courier 路由与 operator 元数据构建可执行的 HTTP 路由处理器。
testingutil
Package testingutil 提供仓库内部测试共用的 HTTP 与 JSON 断言辅助。
Package testingutil 提供仓库内部测试共用的 HTTP 与 JSON 断言辅助。
pkg
content
Package content 提供基于结构体标签的请求编解码与内容转换入口。
Package content 提供基于结构体标签的请求编解码与内容转换入口。
content/internal
Package internal 为 `pkg/content` 提供请求编解码、参数映射与内容转换器注册等内部实现。
Package internal 为 `pkg/content` 提供请求编解码、参数映射与内容转换器注册等内部实现。
content/transformers
Package transformers 注册 `pkg/content` 使用的内置内容转换器。
Package transformers 注册 `pkg/content` 使用的内置内容转换器。
courier
Package courier 定义 courier 的核心抽象,包括 Operator、Router、Client、 Transport 与结果类型等最小协作接口。
Package courier 定义 courier 的核心抽象,包括 Operator、Router、Client、 Transport 与结果类型等最小协作接口。
courierhttp
Package courierhttp 提供基于 courier 的 HTTP 路由、请求上下文与响应封装能力。
Package courierhttp 提供基于 courier 的 HTTP 路由、请求上下文与响应封装能力。
courierhttp/client
Package client 提供基于 courier 协议模型的 HTTP 客户端实现。
Package client 提供基于 courier 协议模型的 HTTP 客户端实现。
courierhttp/handler
Package handler 提供 HTTP handler 级别的基础辅助能力。
Package handler 提供 HTTP handler 级别的基础辅助能力。
courierhttp/handler/httprouter
Package httprouter 将 courier 路由树适配为 `net/http` Handler。
Package httprouter 将 courier 路由树适配为 `net/http` Handler。
courierhttp/openapi
Package openapi 根据 courier 路由构建 OpenAPI 文档。
Package openapi 根据 courier 路由构建 OpenAPI 文档。
courierhttp/operatortest
Package operatortest 提供面向单个 courier operator 的 HTTP 测试辅助。
Package operatortest 提供面向单个 courier operator 的 HTTP 测试辅助。
courierhttp/transport
Package transport 提供 courier 与 HTTP 之间的传输层适配。
Package transport 提供 courier 与 HTTP 之间的传输层适配。
courierhttp/util
Package util 提供与 courier HTTP 使用场景相关的轻量辅助函数。
Package util 提供与 courier HTTP 使用场景相关的轻量辅助函数。
expression
Package expression 提供表达式解析、组合与求值入口。
Package expression 提供表达式解析、组合与求值入口。
expression/raw
Package raw 提供 expression 求值阶段使用的原始值模型与基础运算。
Package raw 提供 expression 求值阶段使用的原始值模型与基础运算。
httputil
Package httputil 提供 HTTP 服务启动与优雅退出等基础辅助能力。
Package httputil 提供 HTTP 服务启动与优雅退出等基础辅助能力。
openapi
Package openapi 提供 OpenAPI 3.1 文档对象与构建辅助方法。
Package openapi 提供 OpenAPI 3.1 文档对象与构建辅助方法。
openapi/internal
Package internal 提供 `pkg/openapi` 包内部使用的记录与辅助类型。
Package internal 提供 `pkg/openapi` 包内部使用的记录与辅助类型。
openapi/jsonschema
Package jsonschema 提供 OpenAPI 使用的 JSON Schema 对象模型与编解码辅助。
Package jsonschema 提供 OpenAPI 使用的 JSON Schema 对象模型与编解码辅助。
openapi/jsonschema/extractors
Package extractors 从 Go 类型与校验规则中提取 JSON Schema 描述。
Package extractors 从 Go 类型与校验规则中提取 JSON Schema 描述。
statuserror
Package statuserror 提供状态码、错误码与错误响应描述之间的统一映射。
Package statuserror 提供状态码、错误码与错误响应描述之间的统一映射。
validator
Package validator 提供基于规则 DSL 的值校验入口。
Package validator 提供基于规则 DSL 的值校验入口。
validator/errors
Package errors 定义 validator 使用的结构化错误类型与包装辅助。
Package errors 定义 validator 使用的结构化错误类型与包装辅助。
validator/internal
+gengo:runtimedoc=false
+gengo:runtimedoc=false
validator/internal/rules
Package rules 实现 validator 规则 DSL 的词法与语法解析。
Package rules 实现 validator 规则 DSL 的词法与语法解析。
validator/strfmt
Package strfmt 注册一组常用的字符串格式校验器。
Package strfmt 注册一组常用的字符串格式校验器。
validator/taggedunion
Package taggedunion 提供基于判别字段的联合类型解码能力。
Package taggedunion 提供基于判别字段的联合类型解码能力。
validator/testutil
Package testutil 提供 validator 相关的测试辅助。
Package testutil 提供 validator 相关的测试辅助。
validator/validators
Package validators 注册 validator 使用的内置基础校验器。
Package validators 注册 validator 使用的内置基础校验器。
tool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL