GitHub、SDKを刷新。今後はOpenAPI仕様の生成ツールで生成したSDKを提供へ
今回は「GitHub、SDKを刷新。今後はOpenAPI仕様の生成ツールで生成したSDKを提供へ」についてご紹介します。
関連ワード (我々、機能、開発等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
GithHubは、今後はAPI仕様を記述する業界標準であるOpenAPIに対応した生成ツールで生成したAPIクライアントをSDKとして提供することを明らかにしました。
現在まで同社は「Octokit」と呼ばれるSDKを提供しています。これはGitHubの開発者が、外部のアプリケーション開発者のために、さまざまな言語でGitHub APIを呼び出しやすいように開発したライブラリと言えます。
それに対して今後は、GitHubのAPIがどのような仕様であるかを業界標準であるOpenAPIに従って記述したドキュメントを基に、そこからAPIクライアントを生成するツール「Microsoft Kiota」によって生成したAPIクライアントをSDKとして提供することになると説明されています。
GitHubはこれを同社にとって大きな転換点だと、ブログ「Our move to generated SDKs」(我々は生成されたSDKへ動き出す)で、次のように書いています。
This marks a pivotal moment in our journey towards more dynamic, flexible, and user-friendly tools for our community.
これは、よりダイナミックで柔軟性があり、私たちのコミュニティにとってユーザーフレンドリーなツールを目指す私たちの行程において、極めて重要な転換点となります。
Our SDKs are designed to empower you to build more robust, efficient, and creative solutions on top of the GitHub platform. Learn more about the dynamic, flexible, and user-friendly tools we're building using Kiota!
https://t.co/oh8NzM25b7— GitHub (@github) January 11, 2024
OpenAPIとはRESTful APIの記述を標準化したもの
OpenAPIとは「Open API Spesification」の略で、2015年にRESTful APIの仕様を記述するための業界標準を策定するために立ち上げられた団体「Open API Initiative」により策定されました。
参考:RESTful APIの記述標準化を目指す「Open API Initiative」をマイクロソフト、Google、IBMらが立ち上げ。Swaggerをベースに
オープンソースで開発されてきたAPIフレームワークの「Swagger」がベースとなっており、定められたAPI仕様書に基づいて記述された内容から、APIクライアントを自動生成することが可能となっています。
新しいGitHub SDKは、このOpenAPIで記述されたAPI仕様を基に、マイクロソフトがオープンソースで開発している生成ツール「Microsoft Kiota」によって生成されたAPIクライアントが提供されます。
生成的アプローチでアップデートを即座にSDKに反映できる
GitHubは、この生成的なアプローチによって新しく生成され提供されるSDKは、モデルはAPIのアップデートを即座に反映できることが利点だと説明しています。
The new SDKs are not just about generating code; they are about ushering in a new era of building and integrating with GitHub. By leveraging this generative approach, we will be able to provide immediate updates to models and APIs while also introducing new features to the SDK landscape.
新しいSDKは、コードを生成するという単純なものではなく、GitHubとの統合を構築するうえで、新しい時代の到来を告げるものです。この生成的なアプローチを活用することで、モデルやAPIのアップデートを即座に反映したSDKを提供でき、同時にSDKの展開として新しい機能の導入もできるのです。