📡
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