
AWS 最近宣布其确定性 API 模型的公开可用性,每日向Maven Central发布更新,并通过一个新的GitHub存储库提供开源访问。
这些资源包含 Smithy API 模型,定义了 AWS 的公共接口、操作、行为和错误类型,超越了它们用于 SDK 和 CLI 生成中的内部使用。Smithy是一种协议无关的接口定义语言,它提供了一组工具,可用于为任何编程语言生成客户端、服务器和文档。
自 2018 年以来,AWS 一直在内部使用Smithy模型生成其 SDK 客户端和 CLI 工具。通过使这些模型公开可访问,AWS 旨在为开发和集成提供更广泛的生态系统。根据该公司的说法,通过这一举措,开发人员可以:
生成自定义SDK客户端:使用 Smithy 工具链为尚未得到 AWS 官方的编程语言社区构建专门的 SDK。
生成 API 实现:为特定语言框架创建服务器存根,包括对用于 AI 智能体的模型上下文协议(MCP)服务器配置的支持,并完成内置验证。
构建自定义开发人员工具:为 AWS 集成开发模拟测试工具、IAM 策略生成器或更高级别的抽象。
理解 AWS API 行为:获得对 AWS SDK 如何解释 API 调用及其预期行为的简洁且易于理解的洞察。
全栈开发人员 David Wells 在 X 上写道:
这是一个令人难以置信的一方库,包含了所有的 AWS 服务模型。一个示例用例:将服务[xyz]的 Smithy 定义放入 Google AI Studio 中,并向它询问有关服务及其操作的问题。我发现了我从未找寻到的隐藏宝石。

api-models-aws GitHub 存储库以JSON抽象语法树(AST)格式托管这些 Smithy 模型,每个模型定义了服务类型、操作(包括输入、输出、特征和错误)以及对特定目标的引用,如 Amazon EC2 中的 RunInstances API。Smithy 的“shapes”代表类型,而“traits”为客户端、服务器或文档添加了关键的元数据,提供了详细的 API 信息,如使用示例。
开发人员可以利用 Smithy 构建工具(如Smithy CLI)来处理这些模型,执行临时验证、比较模型,并生成代码,而无需 Java 设置。AWS 提供了示例项目,包括使用Smithy TypeScript构建最小的 Amazon DynamoDB SDK 客户端的模板,以及构建 MCP 服务器的示例,这些 MCP 服务器将工具建模为 Smithy API 或任何 Smithy 服务的代理 MCP 服务器。
最后,更多信息请访问 Smithy.io 网站,其中包括它的代码生成指南。
原文链接:
https://www.infoq.com/news/2025/06/aws-smithy-api-models-opensource/
评论 1 条评论