📡
Avanade Beef で作成した API をカスタム コネクタとして使用する
はじめに
Avanade Beef (以下、Beef) は ASP.NET Core をベースとする Web API の自動生成ツールです。
概要については以下のスライドもご覧ください。
Beef Web API をカスタム コネクタとして使用する
Beef で作成した API は RESTful Web API なので Power Platform のカスタム コネクタとして使用できます。ただし、いくつか注意点があります。
OpenAPI (Swagger) が読み込めない
カスタム コネクタは一から定義する方法と、OpenAPI (Swagger) や Postman コレクションからインポートする方法があります。Beef には既定で Swashbuckle が組み込まれているため、OpenAPI (Swagger) の JSON が自動生成されますが、これをインポートしようとするとエラーが発生します。これは、カスタム コネクタで使用できるスキーマのバージョンが 2.0 であるのに対し、Beef が生成するスキーマのバージョンは 3.0 であるためです。
この問題を回避するには Startup.cs を修正します。
- app.UseSwagger();
+ app.UseSwagger(option =>
+ {
+ option.SerializeAsV2 = true;
+ });
意図しないモデルが読み込まれる
上記を対応すると、JSON をインポートできるようになりますが、動作が非常に遅くなります。確認すると、JSON ファイルに不要なモデル定義が多数含まれていることが原因です。
ページングのパラメーターが表示されない
YAML ファイルで paging: true とするとページングを有効化できます。しかし、そのパラメーターである $page、$size、$count などは OpenAPI (Swagger) の JSON には反映されません。
おわりに
以上の問題があるため、現状ではカスタム コネクタは一から定義することをおすすめします。なお、上記の問題についてはすでに Issue を登録しています。参考までにご覧ください。
Discussion