AWSは最近、最終版APIモデルの公開を発表し、Maven Centralでの毎日の更新と新しいGitHubリポジトリを通じたオープンソースアクセスを提供している。
これらのリソースにはSmithy APIモデルが含まれており、AWSのパブリックインターフェース、操作、動作、エラータイプを定義している。これにより、SDKやCLI生成の内部利用を超えた新たな活用が可能だ。Smithyはプロトコルに依存しないインターフェース定義言語であり、あらゆるプログラミング言語向けにクライアント、サーバー、ドキュメントを生成するためのツールセットである。
AWSは2018年以降、Smithyモデルを社内で使用してSDKクライアントやCLIツールを生成してきた。これらのモデルを公開することで、AWSは開発と統合のための広範なエコシステムを提供することを目指している。この取り組みにより、開発者は以下のことが可能だと同社は述べている。
-
カスタムSDKクライアントの生成: AWSが公式にサポートしていないプログラミング言語コミュニティ向けに、Smithyツールチェーンを使用して目的に特化したSDKを構築できる。
-
API実装の生成: 言語固有のフレームワーク向けのサーバースタブを作成し、AIエージェント向けのModel Context Protocol(MCP)サーバー構成を含む、組み込みの検証機能を提供できる。
-
カスタム開発者ツールの構築: モックテストツール、IAMポリシージェネレーター、またはAWS統合のための高レベル抽象化ツールを開発できる。
-
AWS APIの動作の理解: AWS SDKがAPI呼び出しをどのように解釈し、期待される動作を簡潔かつ容易に把握できる。
フルスタック開発者であるDavid Wells氏はX(旧Twitter)で次のようにツイートしている。
これはAWSサービスモデルをすべて含む驚くべき公式リポジトリです。ユースケースの例として、サービス[xyz]のSmithy定義をGoogle AI Studioにドロップし、そのサービスと操作について質問できます。知らなかった隠れた宝を見つけています。
![]()
api-models-aws GitHubリポジトリには、これらのSmithyモデルがJSON抽象構文ツリー(AST)形式でホストされている。各モデルはサービスタイプ、操作(入力、出力、特性、エラーを含む)、および特定のターゲットへの参照を定義しており、例えばAmazon EC2のRunInstances APIが含まれる。Smithyの「シェイプ」はタイプを表し、「特性」はクライアント、サーバー、またはドキュメント向けの重要なメタデータを追加し、使用例などの詳細なAPI情報を提供する。
開発者はSmithy CLIなどのSmithyビルドツールを活用して、これらのモデルを操作し、アドホック検証し、モデルを比較し、Javaセットアップを必要とせずにコードを生成できる。AWSはサンプルプロジェクトを提供しており、Smithy TypeScriptを使用して最小限のAmazon DynamoDB SDKクライアントを構築するテンプレートや、Smithy APIとしてツールをモデル化するMCPサーバーの構築例、任意のSmithyサービス向けのプロキシMCPサーバーの例が含まれている。
最後に、Smithy.ioウェブサイトではコード生成ガイドを含むさらなる情報が提供されている。