ORPC项目v1.5.1版本发布:增强OpenAPI规范支持
ORPC是一个基于TypeScript的RPC框架,它通过Zod模式验证和OpenAPI规范支持,为开发者提供了类型安全的API开发体验。最新发布的v1.5.1版本主要增强了OpenAPI规范的支持能力,特别是引入了通用模式(Common Schemas)功能,使API文档更加规范和可重用。
通用模式(Common Schemas)功能详解
在API开发中,我们经常会遇到需要在多个接口中复用相同数据结构的情况。v1.5.1版本新增的通用模式功能允许开发者在OpenAPI规范中定义可重用的模式组件,这些组件可以在整个API规范中被引用。
基本用法
开发者现在可以通过commonSchemas选项来定义可重用的模式。每个模式可以指定不同的策略(strategy),目前支持三种方式:
- 默认策略:同时用于输入和输出
- 输入策略(input):仅用于请求体
- 输出策略(output):仅用于响应体
const UserSchema = z.object({
id: z.string(),
name: z.string(),
email: z.string().email(),
})
const spec = await generator.generate(router, {
commonSchemas: {
User: {
schema: UserSchema,
},
InputPet: {
strategy: 'input',
schema: PetSchema,
},
OutputPet: {
strategy: 'output',
schema: PetSchema,
},
},
})
技术实现细节
在底层实现上,ORPC会将这些通用模式转换为OpenAPI规范的components.schemas部分。这种设计有以下几个优势:
- 减少重复定义:相同的模式只需定义一次,多处引用
- 提高可维护性:修改模式定义时只需改动一处
- 增强文档可读性:生成的OpenAPI文档更加清晰规范
对于使用了Zod转换(transform)和管道(pipe)操作的模式,ORPC也能正确处理。例如在PetSchema中,将字符串ID转换为数字类型的处理会被正确地反映在生成的OpenAPI规范中。
其他改进
性能优化
v1.5.1版本还对服务器端的encodeHibernationRPCEvent函数进行了优化,提高了事件编码的效率。这对于高并发场景下的性能表现有积极影响。
Bug修复
修复了一个关于响应头处理的问题:当headers对象为可选时,OpenAPI生成器现在会正确地将响应头标记为可选,而不是强制要求。这使得API规范更加准确地反映了实际的接口行为。
总结
ORPC v1.5.1版本通过引入通用模式功能,进一步提升了API开发的类型安全性和文档规范性。这些改进使得开发者能够更高效地构建和维护高质量的API服务,特别是在需要严格遵循OpenAPI规范的场景下。性能优化和bug修复也提升了框架的稳定性和可靠性,为生产环境使用提供了更好的保障。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
new-apiAI模型聚合管理中转分发系统,一个应用管理您的所有AI模型,支持将多种大模型转为统一格式调用,支持OpenAI、Claude、Gemini等格式,可供个人或者企业内部管理与分发渠道使用。🍥 A Unified AI Model Management & Distribution System. Aggregate all your LLMs into one app and access them via an OpenAI-compatible API, with native support for Claude (Messages) and Gemini formats.JavaScript01
idea-claude-code-gui一个功能强大的 IntelliJ IDEA 插件,为开发者提供 Claude Code 和 OpenAI Codex 双 AI 工具的可视化操作界面,让 AI 辅助编程变得更加高效和直观。Java01
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00