🔧

Microsoft Graph Developer Proxy を使ってみる

2023/01/25に公開

はじめに

2022 年 12 月に Microsoft Graph Developer Proxy というツールがパブリック プレビューで公開されました。

https://devblogs.microsoft.com/microsoft365dev/introducing-the-microsoft-graph-developer-proxy-community-preview/?WT.mc_id=M365-MVP-5002941

2023 年 1 月にバージョン 0.3 が公開されています。

https://devblogs.microsoft.com/microsoft365dev/microsoft-graph-developer-proxy-v0-3/?WT.mc_id=M365-MVP-5002941

Microsoft Graph Developer Proxy を使うと Microsoft Graph で発生するスロットリングのエラー (429 HTTP ステータスなど) をモックすることができます。通常このエラーは環境依存であり、開発時に発生することが難しいという問題を抱えていましたが、任意にエラーを発生させることができるので、回復性の高いアプリケーションを作成するのに役立ちます。また応答データをモックして任意のデータを返すこともできます。

インストール

Microsoft Graph Developer Proxy は .NET 6 のアプリケーションであり Windows、Linux、MacOS で動作します。インストールは以下に手順があります。

https://github.com/microsoftgraph/msgraph-developer-proxy/wiki/Installation

Windows の場合は Release から最新のパッケージをダウンロードします。環境変数の追加は任意です。MacOS の場合は追加の手順が必要になります。

  • バイナリ ファイルに実行権限をつける (chmod)
  • アプリケーションを信頼する
  • 証明書を信頼する
  • プロキシの設定を追加する

実行する

コマンドラインから Microsoft Graph Developer Proxy を実行します。

./msgraph-developer-proxy

あとは開発しているアプリケーションを実行すると Microsoft Graph Developer Proxy が任意に HTTP エラーを返すようになります。エラーを返す頻度やエラーコードはコマンドラインの引数で指定することができます。

./msgraph-developer-proxy --failure-rate 50 --allowed-errors 429 503

パッケージに含まれる appsettings.json でプロキシする URL を指定することができます。既定では SharePoint REST API の URL も入っているようですね。

https://github.com/microsoftgraph/msgraph-developer-proxy/wiki/App-settings

パッケージには含まれていませんが responses.json を作成すると応答データをモックできます。

https://github.com/microsoftgraph/msgraph-developer-proxy/wiki/Response-object

おわりに

スロットリングに関してはトラブルになることが多いので事前にどうなるのかをテストできるのは非常に心強いですね。

Discussion