【ITニュース解説】Why client SDK generation belongs in the open
「Google Developers Blog」が公開したITニュース「Why client SDK generation belongs in the open」について初心者にもわかりやすく解説しています。
ITニュース概要
Googleは、以前の提供元閉鎖を受け、OpenAPIコード生成ツールをオープンソース化した。これにより開発者は、マルチ言語対応で厳密な型付けやSSEストリーミングに対応したSDKを、CI連携で自動生成できる。
ITニュース解説
Googleは、ソフトウェア開発における重要な一歩として、OpenAPIのコード生成スイートをSpeakeasy社と共同でオープンソース化した。このツールは、AGPLv3というライセンスのもと、誰でも利用・改善できる形で公開されている。これは、以前Googleが利用していたSDK(Software Development Kit)を提供する外部サービスが突然停止したという苦い経験から生まれた戦略的な動きであり、開発者がAPI(Application Programming Interface)をより安全かつ効率的に利用できるようになることを目指している。
SDKとは、特定のソフトウェアやサービスと連携するための部品やツール、ドキュメントなどを一式まとめたものである。例えば、ある会社の提供する地図サービスを自分のアプリで使いたい場合、その会社の提供するSDKを使うことで、地図の表示や検索などの機能を簡単に組み込める。SDKがなければ、開発者はAPIの仕様を一つ一つ調べて、自分でプログラムを全て書く必要があり、非常に手間がかかる。APIとは、ソフトウェア同士が互いに情報や機能を利用し合うための窓口のようなもので、例えば天気予報サイトのデータを取り込んだり、SNSに自動で投稿したりする際に使われる。OpenAPIは、このようなAPIの仕様を記述するための世界的な標準規格であり、様々なプログラミング言語からAPIを利用しやすくするための設計図のようなものだ。
これまで、多くの企業はAPIを公開する際に、そのAPIを利用するためのSDKを自社で開発するか、専門の外部ベンダーに依頼していた。Googleも同様に、独自のAPIのためのSDK提供を外部ベンダーに依存していた時期があった。しかし、そのベンダーが突然サービスを終了してしまったため、Googleの開発者は大きな混乱に直面した。この経験から、特定の企業に依存することの危険性を痛感し、SDK生成の仕組みを自分たちの手で管理し、さらに広く公開することの重要性を認識したのだ。これが、今回のオープンソース化の大きな動機となっている。
オープンソース化することで、ソフトウェアは特定の企業のものではなくなり、世界中の開発者が自由にコードを閲覧し、利用し、改善提案ができるようになる。これにより、透明性が高まり、多くの人の目で品質がチェックされ、機能が強化されていくことが期待される。また、もし特定の企業が開発を停止しても、コミュニティ全体で開発が継続されるため、突然サービスが利用できなくなるリスクを減らせる。
今回オープンソース化された新しいコード生成スイートは、いくつかの重要な特徴を持っている。まず「決定論的(Deterministic)」であることだ。これは、同じ入力があれば常に同じSDKが生成されることを意味し、開発者が安心して利用できる信頼性の高いツールであることを示している。次に「多言語SDKジェネレーター」である点。これは、Python、Java、JavaScriptなど、様々なプログラミング言語に対応したSDKを自動で生成できる能力を持つ。これにより、多様な技術スタックを持つ開発チームが、それぞれの得意な言語でAPIを利用できるようになる。
さらに、このスイートは「厳密な型付け(Strict Typing)」をネイティブにサポートしている。これは、プログラムの変数やデータの種類(型)を厳密に定義することで、誤った使い方によるエラーを早期に発見し、開発中のバグを減らすのに役立つ重要な機能だ。また、「SSEストリーミング(Server-Sent Events streaming)」にも対応している。SSEストリーミングは、サーバーからクライアントへリアルタイムでデータを継続的に送信するための技術で、チャットアプリの通知や株価のリアルタイム更新など、現代のWebアプリケーションでよく使われる機能の実装を容易にする。
このスイートには、APIを使うためのコマンドラインインターフェース(CLI)を自動生成するツールや、APIの利用方法を説明するドキュメントサーバーを構築するツールも含まれている。CLIは、マウス操作なしにテキストベースでコンピューターを操作するためのもので、開発者が日々の作業を効率化するのに役立つ。ドキュメントサーバーは、APIの利用方法を開発者にわかりやすく伝える上で不可欠な要素であり、これも自動で生成できることで、開発チームはドキュメント作成の手間を大幅に削減できる。
これらの強力なツールは、開発チームの「CIパイプライン(継続的インテグレーションパイプライン)」に直接統合できる。CIパイプラインとは、コードの変更が加えられるたびに、自動的にビルド、テスト、デプロイなどの一連の作業を実行する自動化されたプロセスのことだ。このパイプラインにSDKの自動生成を組み込むことで、APIの仕様が更新されるたびに、常に最新で信頼性の高いクライアントライブラリが自動的に生成されるようになる。これにより、開発者はAPIの変更に迅速に対応でき、手動でのSDK更新に伴うエラーや手間をなくせる。
さらに重要なのは、生成されたコードの「ライセンスコントロールを完全に保持できる」という点だ。開発チームは、自分たちのAPI向けに生成されたクライアントライブラリのライセンスを、自分たちの都合に合わせて自由に選択できる。これにより、法的な制約を気にすることなく、自社のプロジェクトや製品に安心して組み込める柔軟性が提供される。
今回のGoogleとSpeakeasyによるOpenAPIコード生成スイートのオープンソース化は、単なるツールの公開以上の意味を持つ。これは、ソフトウェア開発における特定のベンダーへの依存性リスクを軽減し、APIエコシステム全体の信頼性、効率性、透明性を高めるための大きな一歩である。システムエンジニアを目指す皆さんにとって、このような自動化ツールやオープンソースの動向は、今後の開発現場で不可欠な知識となるだろう。APIを利用する際の開発の手間を減らし、品質を向上させるこの取り組みは、より堅牢でスケーラブルなシステムを構築するための基盤となる。