「Azure SDK for Go documentation」サイトの「Install the Azure SDK for Go」ページを読み進めています。
「Include the Azure SDK for Go in your project」セクションにて、GoでAzure サービスを使うには Azure/azure-sdk-for-go とは別に Azure/go-autorest もインポートする必要があるとの記述がありましたので、autorestについて少し調べてみました。
ちなみに Azure/go-autorest は Azure/azure-sdk-for-go をgo getした時に一緒にダウンロードされます。
- go get -u -d github.com/Azure/azure-sdk-for-go/...
AzureのREST API
AzureにはREST APIが用意されており、各プログラミング言語はAzure SDKで用意されているHTTPクライアントを通じてこのAPIにアクセスし、Azureとの連携を図ります。
AzureのREST API 仕様はOpen API 仕様 形式で書かれており、また、公開されています。
Azure SDKで用意されているHTTPクライアントは、この仕様書をautorestに読み込ませて自動作成されています。
autorestは、Microsoft社が開発している汎用(Azure専用ではない)オープンソースのツールで、Open API 仕様 形式を読み込んでRESTful Webサービスにアクセスするクライアント ライブラリーを生成します。
OpenAPI 3.0をサポートしており、PowerShall、C#、Python、Java、TypeScript、Ruby、そしてGoのHTTPクライアント ライブラリーを生成できます。
go-autorestは、autorestで作成されたAzure SDK for Goのクライアント ライブラリーに対して、ゴルーチンを使ってHTTPリクエストを並列処理できる機能を追加するパッケージで、
- Azure Active Directory 認証 ライブラリー (autorest/adal)
- 日付型を正確にパースするパッケージ (autorest/date)
- 型アサーション(autorest/to)
- モック (autorest/mock)
- バリデーション (autorest/validation)
- ロガー (logger)
なども含まれています。
例:autorest/adal(Active Directory Authentication Library)
クライアント サービスでは、毎回ログイン画面からログインするのはわずらわしいため、リソースを操作するためのアプケーション IDである「サービス プリンシパル」を作成してアクセスします。
autorest/adal はサービス プリンシパルのトークンを扱うためのパッケージです。
今回で「Azure SDK for Go のインストール / Install the Azure SDK for Go」ページを読み終えたことになります。
P.S. これまで通りja-jpでアクセスしたのですが日本語ドキュメントが表示されなくなっていました... > Microsoftさん